具有時效性的php加密解密函數代碼

來源:互聯網
上載者:User

複製代碼 代碼如下:<?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);
?>

該函數具有時效性,只要到期就不能解密!通過時間動態加密 加密後資料多樣化,增加破解難度

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.