/********************************************************************* function Name: Encrypt function: Encrypt and decrypt string use: Encrypt: Encrypt (' str ', ' E ', ' nowamagic '); Decrypt: Encrypt (' encrypted string ', ' D ', ' nowamagic '); parameter description: $string: A string that requires encryption and decryption $operation: Determine whether to encrypt or decrypt: E: Encrypt D: Decrypt $key: Encrypted key (key); *********************************************************************/ functionEncrypt$string,$operation,$key= ' WMQSFPPS9HWYOJNFP ') { $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)); } }
PHP Encrypted decryption string