一个简单的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 相关文章推荐
ie6 动态缩略图不显示的原因
Jun 21 PHP
提升PHP性能的21种方法介绍
Jun 25 PHP
php读取mysql的简单实例
Jan 15 PHP
thinkphp3查询mssql数据库乱码解决方法分享
Feb 11 PHP
PHP实现文件下载断点续传详解
Oct 15 PHP
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
Dec 09 PHP
PHP常用处理静态操作类
Apr 03 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
Sep 19 PHP
php版微信数据统计接口用法示例
Oct 12 PHP
ThinkPHP5.1框架页面跳转及修改跳转页面模版示例
May 06 PHP
使用composer 安装 laravel框架的方法图文详解
Aug 02 PHP
Laravel实现ApiToken认证请求
Oct 14 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 mkdir()定义和用法
2009/01/14 PHP
php启用sphinx全文搜索的实现方法
2014/12/24 PHP
分享php分页的功能模块
2015/06/16 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
2016/11/21 PHP
PHP中SQL查询语句的id=%d解释(推荐)
2016/12/10 PHP
详解PHP swoole process的使用方法
2017/08/26 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
解决php extension 加载顺序问题
2019/08/16 PHP
tp5 sum某个字段相加得到总数的例子
2019/10/18 PHP
JQuery 简便实现页面元素数据验证功能
2007/03/24 Javascript
JavaScript高级程序设计 读书笔记之十 本地对象Date日期
2012/02/27 Javascript
jQuery.query.js 取参数的两点问题分析
2012/08/06 Javascript
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
2013/07/02 Javascript
开发中可能会用到的jQuery小技巧
2014/03/07 Javascript
用jQuery实现的智能隐藏、滑动效果的返回顶部代码
2014/03/18 Javascript
checkbox勾选判断代码分析
2014/06/11 Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
2014/07/01 Javascript
window.onload与$(document).ready()的区别分析
2015/05/30 Javascript
原生JS实现自定义滚动条效果
2020/10/27 Javascript
JavaScript实现修改伪类样式
2017/11/27 Javascript
解决vue组件中click事件失效的问题
2019/11/09 Javascript
Python实现爬取百度贴吧帖子所有楼层图片的爬虫示例
2018/04/26 Python
利用Python实现在同一网络中的本地文件共享方法
2018/06/04 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
2019/10/24 Python
Python.append()与Python.expand()用法详解
2019/12/18 Python
纽约现代艺术博物馆商店:MoMA STORE(室内家具和杂货商品)
2016/08/02 全球购物
美国综合购物商城:UnbeatableSale.com
2018/11/28 全球购物
酷瑞网络科技面试题
2012/03/30 面试题
大学生职业生涯规划范文
2014/01/08 职场文书
高中运动会入场词
2014/02/14 职场文书
租房合同协议书
2014/04/09 职场文书
大专生求职信
2014/06/29 职场文书
2014年度个人工作总结
2014/11/07 职场文书
Python中使用Lambda函数的5种用法
2021/04/01 Python
教你利用python实现企业微信发送消息
2021/05/23 Python
nginx location 带斜杠【 / 】与不带的区别
2022/04/13 Servers