加密后mcrypt_decrypt不起作用

时间:2013-04-29 08:47:46

标签: php encryption

我想使用mcrypt_decrypt解密加密的响应但是这不起作用,所以我使用这段代码进行测试,响应应该是“这是一个测试”:

// Encryption Algorithm
// the $shared_key and $init_vector are not real
$cipher_alg = MCRYPT_RIJNDAEL_128;
$shared_key = "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF";
$key = pack("H*", $shared_key);
$init_vector = "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF";
$iv = pack("H*", $init_vector);

echo mcrypt_decrypt($cipher_alg, $key, utf8_encode(mcrypt_encrypt(
        $cipher_alg, $key, utf8_encode('This is a test'), MCRYPT_MODE_CBC, $iv)),     MCRYPT_MODE_CBC, $iv);

响应是:

æ †,?7÷q†Ý³‚¢gTô1ò‚ù’Ü”®mÀ{ëQS

我做错了什么?

1 个答案:

答案 0 :(得分:0)

你是utf8编码加密的东西。这样它就被修改了,不能再被解密了。

echo mcrypt_decrypt($cipher_alg, $key, mcrypt_encrypt(
        $cipher_alg, $key, 'This is a test'), MCRYPT_MODE_CBC, $iv), MCRYPT_MODE_CBC, $iv);