具有时效性的php加密解密函数代码


Posted in PHP onJune 19, 2013
<?php
function encode_pass($tex,$key,$type="encode",$expiry=0){
    $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;    
    //设置时间选项
    $modnum=0;$modCount=0;$modCountStr="";
    if($expiry>0){
        if($type=="decode"){
            $modCountStr=substr($tex,6,1);
            $modCount=$modCountStr=="a"?10:floor($modCountStr);
            $modnum=substr($tex,7,$modCount);
            $rand_key=$rand_key.(floor((time()-$modnum)/$expiry));
        }else{
            $modnum=time()%$expiry;
            $modCount=strlen($modnum);
            $modCountStr=$modCount==10?"a":$modCount;
            $rand_key=$rand_key.(floor(time()/$expiry));            
        }
        $tex=$type=="decode"?base64_decode(substr($tex, (7+$modCount))):"xugui".$tex;
    }else{
        $tex=$type=="decode"?base64_decode(substr($tex, 6)):"xugui".$tex;
    }
    $rand_key=md5($rand_key);


    $texlen=strlen($tex);
    $reslutstr="";
    for($i=0;$i<$texlen;$i++){
        $reslutstr.=$tex{$i}^$rand_key{$i%32};
    }
    if($type!="decode"){
        $reslutstr=trim(base64_encode($reslutstr),"==");
        $reslutstr=$modCount?$modCountStr.$modnum.$reslutstr:$reslutstr;
        $reslutstr=$key_b.$reslutstr;
        $reslutstr=substr(md5($reslutstr), 0,8).$reslutstr;
    }else{
        if(substr($reslutstr,0, 5)!="xugui"){
            return false;
        }
        $reslutstr=substr($reslutstr, 5);
    }
    return $reslutstr;
}
$psa=encode_pass("woshi ceshi yong de ","taintainxousad","encode",120);
echo $psa;
echo "\r\n解密:";
echo encode_pass($psa,"taintainxousad",'decode',120);
?>
该函数具有时效性,只要过期就不能解密!通过时间动态加密 加密后数据多样化,增加破解难度
PHP 相关文章推荐
php的正则处理函数总结分析
Jun 20 PHP
PHP程序开发范例学习之表单 获取文本框的值
Aug 08 PHP
比较好用的PHP防注入漏洞过滤函数代码
Apr 11 PHP
在PHP中使用X-SendFile头让文件下载更快
Jun 01 PHP
安装ImageMagick出现error while loading shared libraries的解决方法
Sep 23 PHP
php实现猴子选大王问题算法实例
Apr 20 PHP
php实现将wav文件转换成图像文件并在页面中显示的方法
Apr 21 PHP
php.ini中的request_order推荐设置
May 10 PHP
全面了解PHP中的全局变量
Jun 17 PHP
Yii2中datetime类的使用
Dec 17 PHP
php 中htmlentities导致中文无法查询问题
Sep 10 PHP
PHP pthreads v3使用中的一些坑和注意点分析
Feb 21 PHP
一个简单的php加密解密函数(动态加密)
Jun 19 #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
You might like
php实现在站点里面添加邮件发送的功能
2020/04/28 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
PHP未登录自动跳转到登录页面
2016/12/21 PHP
laravel请求参数校验方法
2019/10/10 PHP
jQuery代码优化之基本事件
2011/11/01 Javascript
JavaScript面向对象程序设计三 原型模式(上)
2011/12/21 Javascript
JavaScript获得当前网页来源页面(即上一页)的方法
2015/04/03 Javascript
JavaScript焦点事件、鼠标事件和滚轮事件使用详解
2016/01/15 Javascript
基于Vue.js实现数字拼图游戏
2016/08/02 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
2016/11/20 Javascript
JS中闭包的经典用法小结(2则示例)
2016/12/28 Javascript
BootstrapValidator实现注册校验和登录错误提示效果
2017/03/10 Javascript
vue组件name的作用小结
2018/05/23 Javascript
详解async/await 异步应用的常用场景
2019/05/13 Javascript
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
[05:05]DOTA2亚洲邀请赛 战队出场仪式
2015/02/07 DOTA
[01:57]2018DOTA2亚洲邀请赛赛前采访-iG
2018/04/03 DOTA
各种Python库安装包下载地址与安装过程详细介绍(Windows版)
2016/11/02 Python
Python信息抽取之乱码解决办法
2017/06/29 Python
django之跨表查询及添加记录的示例代码
2018/10/16 Python
如何在Django项目中引入静态文件
2019/07/26 Python
查找适用于matplotlib的中文字体名称与实际文件名对应关系的方法
2021/01/05 Python
CSS3中的5个有趣的新技术
2009/04/02 HTML / CSS
公务员转正鉴定材料
2014/02/11 职场文书
会计专业导师推荐信
2014/03/08 职场文书
2014年化妆品销售工作总结
2014/12/01 职场文书
2014年英语教师工作总结
2014/12/03 职场文书
西岭雪山导游词
2015/02/06 职场文书
2015感人爱情寄语
2015/02/26 职场文书
525心理健康活动总结
2015/05/08 职场文书
民事撤诉申请书范本
2015/05/18 职场文书
幼儿园2016年感恩节活动总结
2016/04/01 职场文书
python爬取新闻门户网站的示例
2021/04/25 Python
Python快速优雅的批量修改Word文档样式
2021/05/20 Python
Python 数据可视化之Bokeh详解
2021/11/02 Python
10大幻兽系恶魔果实 蝙蝠果实上榜,第一自愈能力强
2022/03/18 日漫