一个简单的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 相关文章推荐
从网上搜到的phpwind 0day的代码
Dec 07 PHP
优化PHP代码的53条建议
Mar 27 PHP
PHP 变量定义和变量替换的方法
Jul 30 PHP
PHP 日期时间函数的高级应用技巧
Oct 10 PHP
PHP 变量的定义方法
Jan 26 PHP
PHP中数据库单例模式的实现代码分享
Aug 21 PHP
php字符串分割函数用法实例
Mar 17 PHP
mysql_escape_string()函数用法分析
Apr 25 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
Jan 17 PHP
cakephp常见知识点汇总
Feb 24 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
May 09 PHP
PHP判断是否是json字符串
Apr 01 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
Cannot modify header information错误解决方法
2008/10/08 PHP
PHP yii实现model添加默认值的方法(两种方法)
2016/11/10 PHP
PHP实现的数独求解问题示例
2017/04/18 PHP
safari下载文件自动加了html后缀问题
2018/11/09 PHP
javascript里的条件判断
2007/02/27 Javascript
js控制iframe的高度/宽度让其自适应内容
2014/04/09 Javascript
javascript实现复制与粘贴操作实例
2014/10/16 Javascript
javacript使用break内层跳出外层循环分析
2015/01/12 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
2015/02/05 Javascript
jQuery实现仿Google首页拖动效果的方法
2015/05/04 Javascript
jquery使用经验小结
2015/05/20 Javascript
AngularJS包括详解及示例代码
2016/08/17 Javascript
微信开发 使用picker封装省市区三级联动模板
2016/10/28 Javascript
swiper动态改变滑动内容的实现方法
2018/01/17 Javascript
如何使用VuePress搭建一个类型element ui文档
2019/02/14 Javascript
微信小程序云开发 生成带参小程序码流程
2019/05/18 Javascript
js打开word文档预览操作示例【不是下载】
2019/05/23 Javascript
通过实践编写优雅的JavaScript代码
2019/05/30 Javascript
教你完全理解ReentrantLock重入锁
2019/06/03 Javascript
使用Taro实现小程序商城的购物车功能模块的实例代码
2020/06/05 Javascript
antd form表单数据回显操作
2020/11/02 Javascript
Python向日志输出中添加上下文信息
2017/05/24 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
2017/09/28 Python
python3大文件解压和基本操作
2017/12/15 Python
Numpy中对向量、矩阵的使用详解
2019/10/29 Python
OpenCV 表盘指针自动读数的示例代码
2020/04/10 Python
python3实现飞机大战
2020/11/29 Python
CSS3实现可爱的小黄人动画
2016/07/11 HTML / CSS
通信生自我鉴定
2014/01/18 职场文书
党的生日活动方案
2014/08/15 职场文书
2014年最新大专生职业生涯规划书范文
2014/09/13 职场文书
音乐教师求职信范文
2015/03/20 职场文书
装配车间主任岗位职责
2015/04/08 职场文书
2016企业先进集体事迹材料
2016/02/25 职场文书
2016优秀护士先进个人事迹材料
2016/02/25 职场文书
详解SQL的窗口函数
2022/04/21 Oracle