一个简单的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生成自己的LOG文件
Oct 09 PHP
初探PHP5
Oct 09 PHP
PHP ajax 分页类代码
Nov 13 PHP
理解php原理的opcodes(操作码)
Oct 26 PHP
php 调试利器debug_print_backtrace()
Jul 23 PHP
PHP中的函数-- foreach()的用法详解
Jun 24 PHP
基于PHP中的常用函数回顾
Jul 11 PHP
YII路径的用法总结
Jul 09 PHP
从零开始学YII2框架(六)高级应用程序模板
Aug 20 PHP
MySql数据库查询结果用表格输出PHP代码示例
Mar 20 PHP
twig里使用js变量的方法
Feb 05 PHP
php中通过eval实现字符串格式的计算公式
Mar 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为表单获取的URL 地址预设 http 字符串函数代码
2010/05/26 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
2020/05/15 PHP
Jquery 获取checkbox的checked问题
2011/11/16 Javascript
js二维数组定义和初始化的三种方法总结
2014/03/03 Javascript
JavaScript 学习笔记之语句
2015/01/14 Javascript
Bootstrap组件学习之导航、标签、面包屑导航(精品)
2016/05/17 Javascript
jQuery中实现prop()函数控制多选框(全选,反选)
2016/08/19 Javascript
javascript实现多张图片左右无缝滚动效果
2017/03/22 Javascript
微信小程序图片宽100%显示并且不变形
2017/06/21 Javascript
详解vue-cli项目中的proxyTable跨域问题小结
2018/02/09 Javascript
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
2018/07/18 Javascript
JS实现的RC4加密算法示例
2018/08/16 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
2018/09/28 Javascript
Nodejs实现多文件夹文件同步
2018/10/17 NodeJs
Node.js 路由的实现方法
2019/06/05 Javascript
Nuxt v-bind绑定img src不显示的解决
2019/12/05 Javascript
javascript实现简易的计算器
2020/01/17 Javascript
python中enumerate函数遍历元素用法分析
2016/03/11 Python
python3实现ftp服务功能(服务端 For Linux)
2017/03/24 Python
Python3最长回文子串算法示例
2019/03/04 Python
Django框架封装外部函数示例
2019/05/28 Python
详解如何用python实现一个简单下载器的服务端和客户端
2019/10/28 Python
HTML5文档结构标签
2017/04/21 HTML / CSS
Html5原创俄罗斯方块(基于canvas)
2019/01/07 HTML / CSS
Html5原生拖拽相关事件简介以及基础实现
2020/11/19 HTML / CSS
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
如何实现一个自定义类的序列化
2012/05/22 面试题
酒店服务与管理毕业生求职信
2013/11/02 职场文书
业务主管岗位职责
2013/11/20 职场文书
工作评语大全
2014/04/26 职场文书
九一八事变纪念日演讲稿
2014/09/14 职场文书
80后婚前协议书范本
2014/10/24 职场文书
2019生态环境保护倡议书!
2019/07/03 职场文书
Android开发实现极为简单的QQ登录页面
2022/04/24 Java/Android
MySQL数据库 安全管理
2022/05/06 MySQL
SQL语句中EXISTS的详细用法大全
2022/06/25 MySQL