2

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

}

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

是否可以?如何?

谢谢!

4

1 回答 1

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)

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

于 2013-07-15T13:22:52.243 回答