一个简单的php加密解密函数(动态加密)

yipeiwu_com5年前PHP代码库
复制代码 代码如下:

function encode_pass($tex,$key,$type="encode"){
    $chrArr=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
                  'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
                  '0','1','2','3','4','5','6','7','8','9');
    if($type=="decode"){
        if(strlen($tex)<14)return false;
        $verity_str=substr($tex, 0,8);
        $tex=substr($tex, 8);
        if($verity_str!=substr(md5($tex),0,8)){
            //完整性验证失败
            return false;
        }   
    }
    $key_b=$type=="decode"?substr($tex,0,6):$chrArr[rand()%62].$chrArr[rand()%62].$chrArr[rand()%62].$chrArr[rand()%62].$chrArr[rand()%62].$chrArr[rand()%62];
    $rand_key=$key_b.$key;
    $rand_key=md5($rand_key);
    $tex=$type=="decode"?base64_decode(substr($tex, 6)):$tex;
    $texlen=strlen($tex);
    $reslutstr="";
    for($i=0;$i<$texlen;$i++){
        $reslutstr.=$tex{$i}^$rand_key{$i%32};
    }
    if($type!="decode"){
        $reslutstr=trim($key_b.base64_encode($reslutstr),"==");
        $reslutstr=substr(md5($reslutstr), 0,8).$reslutstr;
    }
    return $reslutstr;
}
$psa=encode_pass("phpcode","taintainxousad");
echo $psa;
echo encode_pass($psa,"taintainxousad",'decode');

相关文章

php实现将数组转换为XML的方法

php实现将数组转换为XML的方法

本文实例讲述了php实现将数组转换为XML的方法。分享给大家供大家参考。具体如下: 1. php代码如下: <?php class A2Xml { private...

php-fpm开启状态统计的方法详解

本文主要给大家介绍了关于php-fpm开启状态统计的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 启用php-fpm状态功能 $ cat /usr/local/php...

php求数组全排列,元素所有组合的方法总结

本文实例讲述了php求数组全排列,元素所有组合的方法总结。 分享给大家供大家参考,具体如下: <?php $source = array('pll','我','爱',...

Ubuntu12下编译安装PHP5.3开发环境

最近项目遇到一个坑爹的事情,一个源码必须使用PHP5.3,但是现在Ubuntu上自带的版本是5.4,降级之后会出各种奇怪的问题,最后没办法,只能一步步在Ubuntu12.04server...

PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法

PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法

本文实例讲述了PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法。分享给大家供大家参考,具体如下: 用户发送关键字,搜索相应的图文进行回复。 模拟登陆就不说了 右键看“已发送...