一个简单的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 相关文章推荐
基于Zookeeper的使用详解
May 02 PHP
基于PHP静态类的原罪详解
May 06 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
Nov 25 PHP
php获取YouTube视频信息的方法
Feb 11 PHP
php解析http获取的json字符串变量总是空白null
Mar 02 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
May 11 PHP
PHP实现通过正则表达式替换回调的内容标签
Jun 15 PHP
php开发工具有哪五款
Nov 09 PHP
php轻松实现文件上传功能
Mar 03 PHP
使用 laravel sms 构建短信验证码发送校验功能
Nov 06 PHP
php实现构建排除当前元素的乘积数组方法
Oct 06 PHP
PHP单例模式应用示例【多次连接数据库只实例化一次】
Dec 18 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 获得汉字拼音首字母的函数
2009/08/01 PHP
laravel Model 执行事务的实现
2019/10/10 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
15款优秀的jQuery导航菜单插件分享
2011/07/19 Javascript
jquery datepicker参数介绍和示例
2014/04/15 Javascript
js实现将选中值累加到文本框的方法
2015/08/12 Javascript
jquery插件uploadify实现带进度条的文件批量上传
2015/12/13 Javascript
jQuery获取字符串中出现最多的数
2016/02/22 Javascript
javascript的 {} 语句块详解
2016/02/27 Javascript
jquery 多个radio的click事件实例
2016/12/03 Javascript
简单实现jQuery多选框功能
2017/01/09 Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
JavaScript实现的搜索及高亮显示功能示例
2017/08/14 Javascript
解决vue项目报错webpackJsonp is not defined问题
2018/03/14 Javascript
JQuery事件委托原理与用法实例分析
2019/05/13 jQuery
vue 自动化路由实现代码
2019/09/03 Javascript
JavaScript数组排序的六种常见算法总结
2020/08/18 Javascript
[02:53]DOTA2英雄昆卡基础教程
2013/11/25 DOTA
在Python程序中进行文件读取和写入操作的教程
2015/04/28 Python
Python遍历目录并批量更换文件名和目录名的方法
2016/09/19 Python
Python实现将罗马数字转换成普通阿拉伯数字的方法
2017/04/19 Python
python中partial()基础用法说明
2018/12/30 Python
Django框架模型简单介绍与使用分析
2019/07/18 Python
python3下pygame如何实现显示中文
2020/01/11 Python
华为旗下电子商务平台:华为商城
2016/08/06 全球购物
阿迪达斯比利时官方商城:adidas比利时
2016/10/10 全球购物
英国在线花园中心:You Garden
2018/06/03 全球购物
GAZMAN官网:澳大利亚领先的男装品牌
2019/12/19 全球购物
Made in Design意大利:现代家具、名家灯具和装饰
2020/10/27 全球购物
大学毕业的自我鉴定
2013/10/08 职场文书
球队口号
2014/06/18 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
管理岗位竞聘演讲稿
2014/08/18 职场文书
人身损害赔偿协议书范本
2014/09/27 职场文书
教师见习总结范文
2015/06/23 职场文书
使用Redis实现分布式锁的方法
2022/06/16 Redis