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


Posted in PHP onJune 19, 2013
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 相关文章推荐
PHP新手上路(十四)
Oct 09 PHP
PHP HTML代码串截取代码
Dec 29 PHP
php中截取中文字符串的代码小结
Jul 17 PHP
ThinkPHP与PHPExcel冲突解决方法
Aug 08 PHP
使用HMAC-SHA1签名方法详解
Jun 26 PHP
PHP使用ob_start生成html页面的方法
Nov 07 PHP
PHP实现返回JSON和XML的类分享
Jan 28 PHP
微信支付开发交易通知实例
Jul 12 PHP
php实现带读写分离功能的MySQL类完整实例
Jul 28 PHP
PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)
Jun 16 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
Oct 11 PHP
php微信开发之关键词回复功能
Jun 13 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
Jun 19 #PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
Jun 18 #PHP
深入PHP数据加密详解
Jun 18 #PHP
使用array mutisort 实现按某字段对数据排序
Jun 18 #PHP
php多个字符串替换成同一个的解决方法
Jun 18 #PHP
基于PHP读取csv文件内容的详解
Jun 18 #PHP
解析CodeIgniter自定义配置文件
Jun 18 #PHP
You might like
php实现12306火车票余票查询和价格查询(12306火车票查询)
2014/01/14 PHP
php 判断字符串中是否包含html标签
2014/02/17 PHP
php实现的微信红包算法分析(非官方)
2015/09/25 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
PHP实现查询两个数组中不同元素的方法
2016/02/23 PHP
jquery 定位input元素的几种方法小结
2013/07/28 Javascript
JavaScript 中的日期和时间及表示标准介绍
2013/08/21 Javascript
JS中判断null的方法分析
2016/11/21 Javascript
PHP+jquery+ajax实现分页
2016/12/09 Javascript
Linux使用Node.js建立访问静态网页的服务实例详解
2017/03/21 Javascript
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
python清除字符串里非数字字符的方法
2015/07/02 Python
python检查指定文件是否存在的方法
2015/07/06 Python
解析Python编程中的包结构
2015/10/25 Python
python中常用的九种预处理方法分享
2016/09/11 Python
python将unicode转为str的方法
2017/06/21 Python
python实现祝福弹窗效果
2019/04/07 Python
Pandas之DataFrame对象的列和索引之间的转化
2019/06/25 Python
Django ORM多对多查询方法(自定义第三张表&amp;ManyToManyField)
2019/08/09 Python
python实现猜单词游戏
2020/05/22 Python
聊聊python在linux下与windows下导入模块的区别说明
2021/03/03 Python
关于PySnooper 永远不要使用print进行调试的问题
2021/03/04 Python
HTML5 Canvas 破碎重组的视频特效的示例代码
2019/09/24 HTML / CSS
全球领先的各类汽车配件零售商:Advance Auto Parts
2016/08/26 全球购物
美国时尚大码女装购物网站:Avenue
2019/05/24 全球购物
医学护理毕业生自荐信
2013/11/07 职场文书
简历中个人自我评价范文
2013/12/26 职场文书
六十岁生日答谢词
2014/01/10 职场文书
《小蝌蚪找妈妈》教学反思
2014/02/21 职场文书
小学生三分钟演讲稿
2014/08/18 职场文书
民事赔偿协议书
2014/11/02 职场文书
个人求职信格式范文
2015/03/20 职场文书
银行优秀员工推荐信
2015/03/24 职场文书
雷锋的观后感
2015/06/10 职场文书
2019年思想汇报
2019/06/20 职场文书
Mysql 文件配置解析介绍
2022/05/06 MySQL