一个简单的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
?生?D片??C字串
Dec 06 PHP
对Session和Cookie的区分与解释
Mar 16 PHP
关于Intype一些小问题的解决办法
Mar 28 PHP
PHP获取表单textarea数据中的换行问题
Sep 10 PHP
php流量统计功能的实现代码
Sep 29 PHP
PHP数组传递是值传递而非引用传递概念纠正
Jan 31 PHP
php实现监控varnish缓存服务器的状态
Dec 30 PHP
WordPress中限制非管理员用户在文章后只能评论一次
Dec 31 PHP
PHP调试及性能分析工具Xdebug详解
Feb 09 PHP
PHP让网站移动访问更加友好方法
Feb 14 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式二图文详解
Apr 09 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删除文件夹及其文件夹下所有文件的函数代码
2013/01/23 PHP
使用php转义输出HTML到JavaScript
2015/03/27 PHP
php实现的xml操作类
2016/01/15 PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
2016/06/13 PHP
php微信开发之关注事件
2018/06/14 PHP
15 个 JavaScript Web UI 库
2010/05/19 Javascript
jQuery实现TAB风格的全国省份城市滑动切换效果代码
2015/08/24 Javascript
JS表单验证的代码(常用)
2016/04/08 Javascript
微信小程序 地图map实例详解
2017/06/07 Javascript
利用jquery去掉时光轴头尾部线条的方法实例
2017/06/16 jQuery
详解JavaScript基础知识(JSON、Function对象、原型、引用类型)
2018/01/16 Javascript
解决Vue2.0中使用less给元素添加背景图片出现的问题
2018/09/03 Javascript
微信小程序如何修改本地缓存key中单个数据的详解
2019/04/26 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
JS合并两个数组的3种方法详解
2019/10/24 Javascript
JS数组方法concat()用法实例分析
2020/01/18 Javascript
[07:54]DOTA2 MV《我的动力鞋》 ImbaTV 出品
2014/11/21 DOTA
Python标准库urllib2的一些使用细节总结
2015/03/16 Python
在Python的Flask框架中使用模版的入门教程
2015/04/20 Python
python基础教程之分支、循环简单用法
2016/06/16 Python
教你用Type Hint提高Python程序开发效率
2016/08/08 Python
浅谈scrapy 的基本命令介绍
2017/06/13 Python
pytorch SENet实现案例
2020/06/24 Python
新百伦折扣店:Joe’s New Balance Outlet
2016/08/20 全球购物
美国时尚女装在线:Missguided
2016/12/03 全球购物
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
爱情保证书范文
2014/02/01 职场文书
乡镇干部十八大感言
2014/02/17 职场文书
给学校建议书范文
2014/05/13 职场文书
社保转移委托书范本
2014/10/08 职场文书
小学优秀教师材料
2014/12/15 职场文书
土木工程生产实习心得体会
2016/01/22 职场文书
怎样评估创业计划书是否有可行性?
2019/08/07 职场文书
SQL Server查询某个字段在哪些表中存在
2022/03/03 SQL Server
Java Spring Lifecycle的使用
2022/05/06 Java/Android