php教程

超轻量级php框架startmvc

php 实现一个字符串加密解密的函数实例代码

更新时间:2020-03-13 20:26:39 作者:startmvc
php实现一个字符串加密解密的函数函数代码如下:/*****************************************************

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

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

php 一个字符串加密解密 php 字符串加密解密实例 php 字符串加密解密实现代码