具有时效性的php加密解密函数代码_php教程-查字典教程网
具有时效性的php加密解密函数代码
具有时效性的php加密解密函数代码
发布时间:2016-12-29 来源:查字典编辑
摘要:复制代码代码如下:该函数具有时效性,只要过期就不能解密!通过时间动态加密加密后数据多样化,增加破解难度

复制代码 代码如下:

<?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 "rn解密:";

echo encode_pass($psa,"taintainxousad",'decode',120);

?>

该函数具有时效性,只要过期就不能解密!通过时间动态加密 加密后数据多样化,增加破解难度

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新php教程学习
    热门php教程学习
    编程开发子分类