php 实现一个字符串加密解密的函数函数代码如下:
/*********************************************************************函数名称:encrypt函数作用:加密解密字符串使用方法:加密 :encrypt("str","E","nowamagic");解密 :encrypt("被加密过的字符串","D","nowamagic");参数说明:$string:需要加密解密的字符串$operation:判断是加密还是解密:E:加密D:解密$key :加密的钥匙(密匙);http://www.cnblogs.com/roucheng/*********************************************************************/function encrypt($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();$result="";for($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)){return substr($result,8);}else{return"";}}else{return str_replace("=","",base64_encode($result));}}
使用实例:
$id = 132;$token = encrypt($id, "E", "a");echo "加密:".encrypt($id, "E", "a");echo "<br />";echo "解密:".encrypt($token, "D", "a");
运行结果:
加密:AYCnIibFlg3ViRs
解密:132
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!