PHP implementation of a string encryption decryption function
The function code is as follows:
/********************************************************************* function Name: Encrypt function: Encrypt decryption string usage: encryption: ENCR
Ypt (' str ', ' E ', ' nowamagic ');
Decryption: Encrypt (' encrypted string ', ' D ', ' nowamagic ');
Parameter description: $string: Need to encrypt the decrypted string $operation: To determine whether encryption or decryption: E: Encryption D: Decryption $key: Encryption key (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)) {RET
Urn substr ($result, 8);
else {return ';
} else {return str_replace (' = ', ', ' Base64_encode ($result));
}
}
Use instance:
$id = 132;
$token = Encrypt ($id, ' E ', ' a ');
Echo ' encrypt: '. Encrypt ($id, ' E ', ' a ');
echo ' <br/> ';
Echo ' Decrypt: '. Encrypt ($token, ' D ', ' a ');
Run Result:
Encryption: Aycniibflg3virs
Decryption: 132
Thank you for reading, I hope to help you, thank you for your support for this site!