一个简单的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垃圾回收机制简单说明
Jul 22 PHP
php设计模式 Factory(工厂模式)
Jun 26 PHP
PHP下打开phpMyAdmin出现403错误的问题解决方法
May 23 PHP
php对包含html标签的字符串进行截取的函数分享
Jun 19 PHP
wamp服务器访问php非常缓慢的解决过程
Jul 01 PHP
Yii+MYSQL锁表防止并发情况下重复数据的方法
Jul 14 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
Oct 08 PHP
php rmdir使用递归函数删除非空目录实例详解
Oct 20 PHP
php安全配置记录和常见错误梳理(总结)
Mar 28 PHP
删除PHP数组中头部、尾部、任意元素的实现代码
Apr 10 PHP
PHP实现将base64编码字符串转换成图片示例
Jun 22 PHP
php7 list()、session及其他模块的修改实例分析
May 25 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将整个网站生成HTML纯静态网页的方法总结
2012/02/05 PHP
PHP将session信息存储到数据库的类实例
2015/03/04 PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
2015/05/12 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
php 解决substr()截取中文字符乱码问题
2016/07/18 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
2020/02/06 PHP
原生js编写设为首页兼容ie、火狐和谷歌
2014/06/05 Javascript
js+css实现上下翻页相册代码分享
2015/08/18 Javascript
javascript DIV实现跟随鼠标移动
2020/03/19 Javascript
jQuery通过deferred对象管理ajax异步
2016/05/20 Javascript
对jQuary选择器的全面总结
2016/06/20 Javascript
微信小程序 表单Form实例详解(附源码)
2016/12/22 Javascript
JS+DIV实现的卷帘效果示例
2017/03/22 Javascript
Node.js实现注册邮箱激活功能的方法示例
2018/03/23 Javascript
js实现列表向上无限滚动
2020/01/13 Javascript
JS图片预加载三种实现方法解析
2020/05/08 Javascript
js实现ajax的用户简单登入功能
2020/06/18 Javascript
[13:18]《一刀刀一天》之DOTA全时刻21:详解TI新赛制 A队再露獠牙
2014/06/24 DOTA
Python中实现常量(Const)功能
2015/01/28 Python
Python中Iterator迭代器的使用杂谈
2016/06/20 Python
详解Python正则表达式re模块
2019/03/19 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
2019/06/21 Python
Python 元组操作总结
2019/09/18 Python
Python实现语音识别和语音合成功能
2019/09/20 Python
matlab、python中矩阵的互相导入导出方式
2020/06/01 Python
Python排序函数的使用方法详解
2020/12/11 Python
python爬虫beautifulsoup库使用操作教程全解(python爬虫基础入门)
2021/02/19 Python
HTML5 在canvas中绘制矩形附效果图
2014/06/23 HTML / CSS
英国、欧洲和全球租车服务:Avis英国
2016/08/29 全球购物
介绍一下grep命令的使用
2015/06/12 面试题
材料加工硕士生求职信
2013/10/10 职场文书
企业管理部经理岗位职责
2013/12/24 职场文书
小学数学教研活动总结
2014/07/01 职场文书
初中生旷课检讨书范文
2014/10/06 职场文书
2016新年慰问信范文
2015/03/25 职场文书