转载地址忘记了,刚开始学PHP时,做的笔记functionencrypt($string,$operation,$key=''){$key=md5($key);$key_length=strlen($key);$string=$operation=='D'?base64_decode($string):substr(md5($string.$key),0,8).$string;$string_length=strlen($string);$rndkey=$box=array();$结果='';对于($i=0;$i<=255;$i++){$rndkey[$i]=ord($key[$i%$key_length]);$box[$i]=$i;}for($j=$i=0;$i<256;$i++){$j=($j+$box[$i]+$rndkey[$i])%256;$tmp=$box[$i];$box[$i]=$box[$j];$box[$j]=$tmp;}for($a=$j=$i=0;$i<$string_length;$i++){$a=($a+1)%256;$j=($j+$box[$a])%256;$tmp=$box[$a];$box[$a]=$box[$j];$box[$j]=$tmp;$result.=chr(ord($string[$i])^($box[($box[$a]+$box[$j])%256]));}if($operation=='D'){if(substr($result,0,8)==substr(md5(substr($result,8).$key),0,8)){returnsubstr($结果,8);}else{返回'';}}else{返回str_replace('=','',base64_encode($result));}}$str='123456';echo'加密前:'.$str.'';$key='999999999';$token=encrypt($str,'E',$key);echo'加密后:'.encrypt($str,'E',$key).'';echo'解密后:'.encrypt($token,'D',$key).'';
