PHP具有时效性的加密解密函数用法示例
内容摘要
这篇文章主要为大家详细介绍了PHP具有时效性的加密解密函数用法示例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!
代码如下:
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!
代码如下:
文章正文
这篇文章主要为大家详细介绍了PHP具有时效性的加密解密函数用法示例,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!
代码如下:
<?php
/* php教程 www.512Pic.com */
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具有时效性的加密解密函数用法示例的内容就先介绍到这里,更多相关文章的可以留意
代码注释