PHP加密解密 第5章 encrypt PHP加密解密 第5章 encrypt

2023-06-15

函数

function encrypt($string, $operation, $key='lulublog')
{
   $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));
   }
}

测试

$encrypt = encrypt('lulublog欢迎您', 'E');
var_dump($encrypt);
$decrypt = encrypt($encrypt, 'D');
var_dump($decrypt);

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开微信扫一扫,即可进行扫码打赏哦

阅读 244