我使用了MCRYPT_ENCRYPT和这个方法:
class Encrypter {
private static $Key = "dublin";
public static function encrypt ($input) {
$output = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256,
md5(Encrypter::$Key), $input, MCRYPT_MODE_CBC,
md5(md5(Encrypter::$Key))));
return $output;
}
public static function decrypt ($input) {
$output = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5(Encrypter::$Key),
base64_decode($input), MCRYPT_MODE_CBC,
md5(md5(Encrypter::$Key))), "\0");
return $output;
}
}
但我需要检查结果才能解密。
有可能吗?怎么样?
谢谢!
答案 0 :(得分:3)
根据我的理解,您想知道如何使用您的类来检查解密结果。如果是这样,该类可以像这样使用:
$originalMessage = 'The quick brown fox jumps over the lazy dog';
$encryptedMessage = Encrypter::encrypt($originalMessage);
$decryptedMessage = Encrypter::decrypt($encryptedMessage);
echo $encryptedMessage . PHP_EOL; //prints encrypted message
echo $decryptedMessage . PHP_EOL; //prints decrypted message
//checks if decrypted message is the same as original
var_dump($decryptedMessage == $originalMessage);
这将打印:
2tysbFwsmf2YKOBzgafJuHk66zuPjVp8g9E7bsSkPOIBTHlq0SKMeTNbd+/HzxoponxD5eyppxWmUAflJJjM4A==
The quick brown fox jumps over the lazy dog
bool(true)
第一行是加密消息,
第二行是解密消息,
最后一行是布尔值,表示解密的消息是否与原始消息相同。