检查mcrypt_encrypt的结果

时间:2013-07-15 10:52:17

标签: php mcrypt

我使用了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;
    }

}

但我需要检查结果才能解密。

有可能吗?怎么样?

谢谢!

1 个答案:

答案 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)

第一行是加密消息,
第二行是解密消息,
最后一行是布尔值,表示解密的消息是否与原始消息相同。