一个简单的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 相关文章推荐
第十一节 重载 [11]
Oct 09 PHP
深入分析使用mysql_fetch_object()以对象的形式返回查询结果
Jun 05 PHP
360通用php防护代码(使用操作详解)
Jun 18 PHP
PHP查询网站的PR值
Oct 30 PHP
PHP实现采集抓取淘宝网单个商品信息
Jan 08 PHP
php使用Cookie实现和用户会话的方法
Jan 21 PHP
PHP实现批量生成App各种尺寸Logo
Mar 19 PHP
Yii框架实现的验证码、登录及退出功能示例
May 20 PHP
解决form中action属性后面?传递参数 获取不到的问题
Jul 21 PHP
PHP 数组黑名单/白名单实例代码详解
Jun 04 PHP
TP5框架简单登录功能实现方法示例
Oct 31 PHP
php操作redis常见方法示例【key与value操作】
Apr 14 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 preg_match_all结合str_replace替换内容中所有img
2008/10/11 PHP
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
2012/05/07 PHP
基于php使用memcache存储session的详解
2013/06/25 PHP
php实现检查文章是否被百度收录
2015/01/27 PHP
php使用cookie实现记住用户名和密码实现代码
2015/04/27 PHP
PHP MPDF中文乱码的解决方式
2015/12/08 PHP
php简单实现短网址(短链)还原的方法(测试可用)
2016/05/09 PHP
PHP请求Socket接口测试实例
2016/08/12 PHP
一个实用的php验证码类
2017/07/06 PHP
Yii2.0实现生成二维码功能实例
2017/10/24 PHP
js 学习笔记(三)
2009/12/29 Javascript
如何解决Jquery库及其他库之间的$命名冲突
2013/09/15 Javascript
window.open打开页面居中显示的示例代码
2013/12/27 Javascript
js中传递特殊字符(+,&amp;)的方法
2014/01/16 Javascript
Jquery实现自定义tooltip示例代码
2014/02/12 Javascript
JavaScript字符串对象substring方法入门实例(用于截取字符串)
2014/10/17 Javascript
javascript实现window.print()去除页眉页脚
2014/12/30 Javascript
JS通过ajax动态读取xml文件内容的方法
2015/03/24 Javascript
javascript中attachEvent用法实例分析
2015/05/14 Javascript
基于BootStrap实现局部刷新分页实例代码
2016/08/08 Javascript
详解angular 中的自定义指令之详解API
2017/06/20 Javascript
js实现图片推拉门效果代码实例
2019/05/18 Javascript
vue路由守卫及路由守卫无限循环问题详析
2019/09/05 Javascript
vue浏览器返回监听的具体步骤
2021/02/03 Vue.js
[01:11:11]Alliance vs RNG 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
Python使用py2exe打包程序介绍
2014/11/20 Python
python中列表元素连接方法join用法实例
2015/04/07 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
2017/09/26 Python
在scrapy中使用phantomJS实现异步爬取的方法
2018/12/17 Python
微信公众号token验证失败解决方案
2019/07/22 Python
python super函数使用方法详解
2020/02/14 Python
HTML5 FormData 方法介绍以及实现文件上传示例
2017/09/12 HTML / CSS
意大利奢侈品多品牌集合店:TheDoubleF
2019/08/24 全球购物
党员个人公开承诺书
2014/08/29 职场文书
个人年度总结报告
2015/03/09 职场文书
浅谈Redis的keys命令到底有多慢
2021/10/05 Redis