一个简单的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 extract 将数组拆分成多个变量的函数
Jun 30 PHP
需要注意的几个PHP漏洞小结
Feb 05 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
May 10 PHP
php常用的url处理函数总结
Nov 19 PHP
如何实现php图片等比例缩放
Jul 28 PHP
使用PHP进行微信公众平台开发的示例
Aug 21 PHP
AJAX的使用方法详解
Apr 29 PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
Mar 31 PHP
PHP实现的AES双向加密解密功能示例【128位】
Sep 03 PHP
PHP安装memcache扩展的步骤讲解
Feb 14 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
Mar 24 PHP
phpstudy隐藏index.php的方法
Sep 21 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源代码数组统计count分析
2011/08/02 PHP
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
2012/05/06 PHP
php根据操作系统转换文件名大小写的方法
2014/02/24 PHP
PHP使用file_get_content设置头信息的方法
2016/02/14 PHP
js 图片缩放(按比例)控制代码
2009/05/27 Javascript
Javascript 学习书 推荐
2009/06/13 Javascript
jQuery的写法不同导致的兼容性问题的解决方法
2010/07/29 Javascript
Javascript图像处理—虚拟边缘介绍及使用方法
2012/12/27 Javascript
FF(火狐)浏览器无法执行window.close()解决方案
2014/11/13 Javascript
Javascript基于对象三大特性(封装性、继承性、多态性)
2016/01/04 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
jQuery鼠标事件总结
2016/10/13 Javascript
解决微信内置浏览器返回上一页强制刷新问题方法
2017/02/05 Javascript
基于vue实现多引擎搜索及关键字提示
2017/03/16 Javascript
vue中手机号,邮箱正则验证以及60s发送验证码的实例
2018/03/16 Javascript
修改npm全局安装模式的路径方法
2018/05/15 Javascript
前端面试知识点目录一览
2019/04/15 Javascript
微信小程序全局变量GLOBALDATA的定义和调用过程解析
2019/09/23 Javascript
vant组件中 dialog的确认按钮的回调事件操作
2020/11/04 Javascript
[01:46]2018完美盛典章节片——坚守
2018/12/17 DOTA
Tensorflow 利用tf.contrib.learn建立输入函数的方法
2018/02/08 Python
Python 按字典dict的键排序,并取出相应的键值放于list中的实例
2019/02/12 Python
如何通过python的fabric包完成代码上传部署
2019/07/29 Python
Python进程,多进程,获取进程id,给子进程传递参数操作示例
2019/10/11 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
2021/02/27 Python
StubHub哥伦比亚:购买和出售您的门票
2016/10/20 全球购物
澳大利亚儿童和婴儿产品在线商店:Lime Tree Kids
2017/10/05 全球购物
自荐信结尾
2013/10/27 职场文书
日语系毕业生推荐信
2013/11/11 职场文书
2014全国两会大学生学习心得体会
2014/03/10 职场文书
高校教师岗位职责
2014/03/18 职场文书
土建工程师岗位职责
2014/06/10 职场文书
2015年学生资助工作总结
2015/05/25 职场文书
k8s部署redis cluster集群的实现
2021/06/24 Redis
使用CSS实现百叶窗效果示例代码
2023/05/07 HTML / CSS