具有时效性的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,8); $tex=substr($tex,8); if($verity_str!=substr(md5($tex),8)){ //完整性验证失败 return false; } } $key_b=$type=="decode"?substr($tex,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);
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |