我需要能够加密和解密变量,但是我还需要知道解密是否成功。在我的代码中,当我$string
在解密之前将变量更改为其他内容时,我会收到随机字符。
function encrypt($string) {
$key = 'password';
$encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));
return $encrypted;
}
function decrypt($encrypted) {
$key = 'password';
$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($encrypted), MCRYPT_MODE_CBC, md5(md5($key))), "\0");
return $decrypted;
}
$string = 'Hello world.';
if (encrypt($string)) {
$string = encrypt($string);
echo $string;
echo '<br>';
}
if (decrypt($string)) {
$string = decrypt($string);
echo $string;
echo '<br>';
}
是否可以检测到解密失败?谢谢。