一个简单的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默认安装产生系统漏洞
Oct 09 PHP
php代码把全角数字转为半角数字
Dec 10 PHP
台湾中原大学php教程孙仲岳主讲
Jan 07 PHP
window+nginx+php环境配置 附配置搭配说明
Dec 29 PHP
Yii PHP Framework实用入门教程(详细介绍)
Jun 18 PHP
laravel 5 实现模板主题功能(续)
Mar 02 PHP
php实现发送微信模板消息的方法
Mar 07 PHP
PHP通过API获取手机号码归属地
May 28 PHP
php在数据库抽象层简单使用PDO的方法
Nov 03 PHP
thinkPHP5项目中实现QQ第三方登录功能
Oct 20 PHP
Mac系统下安装PHP Xdebug
Mar 30 PHP
PDO::exec讲解
Jan 28 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超级全局变量数组小结
2012/10/04 PHP
PHP捕获Fatal error错误的方法
2014/06/11 PHP
php遍历解析xml字符串的方法
2016/05/05 PHP
PHP实现导出带样式的Excel
2016/08/28 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
关于Curl在Swoole协程中的解决方案详析
2019/09/12 PHP
网页右下角弹出窗体实现代码
2014/06/05 Javascript
javascript背景时钟实现方法
2015/06/18 Javascript
jQuery查找节点方法完整实例
2016/09/13 Javascript
jQuery删除当前节点元素
2016/12/07 Javascript
js实现选项卡内容切换以及折叠和展开效果【推荐】
2017/01/08 Javascript
Vue组件之全局组件与局部组件的使用详解
2017/10/09 Javascript
ES6 系列之 Generator 的自动执行的方法示例
2018/10/19 Javascript
JavaScript实现汉字转换为拼音及缩写的方法示例
2019/03/28 Javascript
详解JS判断页面是在手机端还是在PC端打开的方法
2019/04/26 Javascript
详解mpvue中使用vant时需要注意的onChange事件的坑
2019/05/16 Javascript
vue调用语音播放的方法
2019/09/27 Javascript
微信小程序iOS下拉白屏晃动问题解决方案
2019/10/12 Javascript
es6中class类静态方法,静态属性,实例属性,实例方法的理解与应用分析
2020/02/15 Javascript
JS常见错误(Error)及处理方案详解
2020/07/02 Javascript
微信小程序上传帖子的实例代码(含有文字图片的微信验证)
2020/07/11 Javascript
[01:19:54]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#1Alliance VS EHOME
2016/03/03 DOTA
通过python下载FTP上的文件夹的实现代码
2013/02/10 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
2017/09/06 Python
高质量Python代码编写的5个优化技巧
2017/11/16 Python
Python实现的简单计算器功能详解
2018/08/25 Python
对django views中 request, response的常用操作详解
2019/07/17 Python
CSS3实现3D翻书效果
2016/06/20 HTML / CSS
英国领先的独立时装店:Van Mildert
2019/10/28 全球购物
Ajax实现页面无刷新留言效果
2021/03/24 Javascript
四个太阳教学反思
2014/02/01 职场文书
行政工作试用期自我评价
2014/09/14 职场文书
家庭财产分割协议书范本
2014/11/24 职场文书
可可西里观后感
2015/06/08 职场文书
2016年班主任新年寄语
2015/08/18 职场文书
python b站视频下载的五种版本
2021/05/27 Python