一个简单的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使之能同时支持GIF和JPEG
Oct 09 PHP
计算2000年01月01日起到指定日的天数
Oct 09 PHP
Gregarius中文日期格式问题解决办法
Apr 22 PHP
discuz的php防止sql注入函数
Jan 17 PHP
编写php应用程序实现摘要式身份验证的方法详解
Jun 08 PHP
使用PHP实现Mysql读写分离
Jun 28 PHP
PHP四舍五入、取整、round函数使用示例
Feb 06 PHP
两种php给图片加水印的实现代码
Apr 18 PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
Nov 28 PHP
Thinkphp5行为使用方法汇总
Dec 21 PHP
PDO::rollBack讲解
Jan 29 PHP
PHP与SQL语句写一句话木马总结
Oct 11 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
laravel 5 实现模板主题功能
2015/03/02 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
2016/11/15 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
JavaScript中将一个值转换为字符串的方法分析[译]
2012/09/21 Javascript
JavaScript字符串插入、删除、替换函数使用示例
2013/07/25 Javascript
jquery中 $.expr使用实例介绍
2014/06/09 Javascript
详谈jQuery操纵DOM元素属性 attr()和removeAtrr()方法
2015/01/22 Javascript
jQuery功能函数详解
2015/02/01 Javascript
基于JavaScript实现树形下拉框
2016/08/10 Javascript
jQuey将序列化对象在前台显示地实现代码(方法总结)
2016/12/13 Javascript
js实现选项卡内容切换以及折叠和展开效果【推荐】
2017/01/08 Javascript
十大热门的JavaScript框架和库
2017/03/21 Javascript
详解webpack es6 to es5支持配置
2017/05/04 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
2017/05/26 Javascript
js使用xml数据载体实现城市省份二级联动效果
2017/11/08 Javascript
ES6模板字符串和标签模板的应用实例分析
2019/06/25 Javascript
原生js实现抽奖小游戏
2019/06/27 Javascript
vant中的toast轻提示实现代码
2020/11/04 Javascript
[54:08]LGD女子刀塔学院 DOTA2炼金术士教学
2014/01/09 DOTA
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
Python中文件I/O高效操作处理的技巧分享
2017/02/04 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
2018/06/11 Python
Python中logging.NullHandler 的使用教程
2018/11/29 Python
在python中利用KNN实现对iris进行分类的方法
2018/12/11 Python
Python图像处理库PIL的ImageGrab模块介绍详解
2020/02/26 Python
基于打开pycharm有带图片md文件卡死问题的解决
2020/04/24 Python
Python读取二进制文件代码方法解析
2020/06/22 Python
介绍一下游标
2012/01/10 面试题
自荐信模版
2013/10/24 职场文书
中专生毕业个人鉴定
2014/02/26 职场文书
加多宝凉茶广告词
2014/03/18 职场文书
社区道德讲堂实施方案
2014/03/21 职场文书
品牌转让协议书
2014/08/20 职场文书
乡镇司法所2015年度工作总结
2015/10/14 职场文书
通过T-SQL语句创建游标与实现数据库加解密功能
2022/03/16 SQL Server
Redis+AOP+自定义注解实现限流
2022/06/28 Redis