一个简单的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的FTP学习(二)[转自奥索]
Oct 09 PHP
调整PHP的性能
Oct 30 PHP
PHP的error_reporting错误级别变量对照表
Jul 08 PHP
php跨服务器访问方法小结
May 12 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
Jun 29 PHP
php把数组值转换成键的方法
Jul 13 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
Jul 01 PHP
PHP的openssl加密扩展使用小结(推荐)
Jul 18 PHP
利用switch语句进行多选一判断的实例代码
Nov 14 PHP
php使用变量动态创建类的对象用法示例
Feb 06 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
Feb 15 PHP
POST一个JSON格式的数据给Restful服务实例详解
Apr 07 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数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
2011/11/07 PHP
PHP7下协程的实现方法详解
2017/12/17 PHP
php中错误处理操作实例分析
2019/08/23 PHP
在网页中使用document.write时遭遇的奇怪问题
2010/08/24 Javascript
按钮JS复制文本框和表格的代码
2011/04/01 Javascript
模仿百度三维地图的js数据分享
2011/05/12 Javascript
Javascript面向对象编程(二) 构造函数的继承
2011/08/28 Javascript
基于JQuery 选择器使用说明介绍
2013/04/18 Javascript
浅析JavaScript中的CSS属性及命名规范
2013/11/28 Javascript
Eclipse去除js(JavaScript)验证错误
2014/02/11 Javascript
微信企业号开发之微信考勤百度地图定位
2015/09/11 Javascript
jQuery验证插件validate使用方法详解
2020/09/13 Javascript
VUE利用vuex模拟实现新闻点赞功能实例
2017/06/28 Javascript
在 React、Vue项目中使用SVG的方法
2018/02/09 Javascript
vue 注册组件的使用详解
2018/05/05 Javascript
微信小程序使用scroll-view标签实现自动滑动到底部功能的实例代码
2018/11/09 Javascript
Angular8基础应用之表单及其验证
2019/08/11 Javascript
[37:47]IG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python判断图片宽度和高度后删除图片的方法
2015/05/22 Python
Python set常用操作函数集锦
2017/11/15 Python
Python matplotlib绘图可视化知识点整理(小结)
2018/03/16 Python
python打包成so文件过程解析
2019/09/28 Python
Python实现点云投影到平面显示
2020/01/18 Python
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
HTML5地理定位_动力节点Java学院整理
2017/07/12 HTML / CSS
帕克纽约:PARKER NY
2018/12/09 全球购物
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
大学生物业管理求职信
2013/10/24 职场文书
培训楼经理岗位责任制
2014/02/10 职场文书
高级销售求职信
2014/02/21 职场文书
美术教学感言
2014/02/22 职场文书
主管会计岗位职责
2014/03/13 职场文书
争先创优心得体会
2014/09/12 职场文书
家长给老师的感谢信
2015/01/20 职场文书
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏