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

yipeiwu_com7年前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中通过ADO调用Access数据库的方法测试不通过

我看了那篇《怎样在PHP中通过ADO调用Asscess数据库和COM程序》文章后,马上作了测试,结果失败了。伤心是不是。  怎么办?我只好去PHP官方网站求助,皇天不负有心人,...

PHP读取并输出XML文件数据的简单实现方法

本文实例讲述了PHP读取并输出XML文件数据的简单实现方法。分享给大家供大家参考,具体如下: config.XML文件: <?xml version="1.0" enc...

php中Y2K38的漏洞解决方法实例分析

本文实例分析了php中Y2K38漏洞的解决方法。分享给大家供大家参考。具体分析如下: Y2K38,又称 Unix Millennium Bug, 此漏洞将会影响到所有 32 位系统下用...

php的一些小问题

整理出来2个给大家学习学习 1、三个等号和二个等号的区别 "===" VS "==" 比如你一个函数会返回这几种情况: 1、大于0的数 2、小于0的数 3、等于0的数(也就是0啦) 4、...

PHP里8个鲜为人知的安全函数分析

本文实例讲述了PHP里8个鲜为人知的安全函数。分享给大家供大家参考。具体分析如下: 安全是编程非常重要的一个方面。在任何一种编程语言中,都提供了许多的函数或者模块来确保程序的安全性。在现...