一个简单的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 相关文章推荐
一个可以删除字符串中HTML标记的PHP函数
Oct 09 PHP
php adodb连接mssql解决乱码问题
Jun 12 PHP
php下清空字符串中的HTML标签的代码
Sep 06 PHP
php文件怎么打开 如何执行php文件
Dec 21 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
Jun 20 PHP
thinkphp实现图片上传功能分享
Mar 04 PHP
php像数组一样存取和修改字符串字符
Mar 21 PHP
php合并数组中相同元素的方法
Nov 13 PHP
PHP输出一个等腰三角形的方法
May 12 PHP
php实现比较两个字符串日期大小的方法
May 12 PHP
PHP面向对象程序设计实例分析
Jan 26 PHP
ThinkPHP和UCenter接口冲突的解决方法
Jul 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
分享下页面关键字抓取components.arrow.com站点代码
2014/01/30 PHP
Codeigniter中mkdir创建目录遇到权限问题和解决方法
2014/07/25 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
2015/05/09 PHP
修改WordPress中文章编辑器的样式的方法详解
2015/12/15 PHP
PHP基于单例模式实现的数据库操作基类
2016/01/15 PHP
CI操作cookie的方法分析(基于helper类库)
2016/03/28 PHP
laravel5环境隐藏index.php后缀(apache)的方法
2019/10/12 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
2021/03/09 PHP
javascript中的location用法简单介绍
2007/03/07 Javascript
运算符&amp;&amp;的三个不同层次
2013/04/07 Javascript
JS正则表达式验证数字代码
2014/01/28 Javascript
jQuery实现鼠标悬停背景翻转的黑色导航菜单代码
2015/09/14 Javascript
jQuery基本选择器(实例及表单域value的获取方法)
2016/05/20 Javascript
基于JS实现数字+字母+中文的混合排序方法
2016/06/06 Javascript
用JS实现轮播图效果(二)
2016/06/26 Javascript
javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
2016/10/10 Javascript
微信小程序 form组件详解
2016/10/25 Javascript
JavaScript自定义函数实现查找两个字符串最长公共子串的方法
2016/11/24 Javascript
微信小程序页面滑动屏幕加载数据效果
2020/11/16 Javascript
vue实现tab切换外加样式切换方法
2018/03/16 Javascript
Vue将页面导出为图片或者PDF
2020/08/17 Javascript
原生js实现抽奖小游戏
2019/06/27 Javascript
layer弹窗在键盘按回车将反复刷新的实现方法
2019/09/25 Javascript
vuex存储token示例
2019/11/11 Javascript
Python+tkinter使用80行代码实现一个计算器实例
2018/01/16 Python
numpy中矩阵合并的实例
2018/06/15 Python
会计专业大学生求职信范文
2014/01/28 职场文书
学习决心书
2014/03/11 职场文书
文明城市创建标语
2014/06/16 职场文书
医德医风个人总结
2015/02/28 职场文书
小学班级口号大全
2015/12/25 职场文书
JavaScript实现酷炫的鼠标拖尾特效
2022/02/18 Javascript
PYTHON 使用 Pandas 删除某列指定值所在的行
2022/04/28 Python
java版 简单三子棋游戏
2022/05/04 Java/Android