1

我从这个网站得到了下面的代码。当我运行它时,我得到

Warning: mcrypt_encrypt(): Attempt to use an empty IV, which is NOT recommend in C:\web\apache\htdocs\dev\encrypt.php on line 7

我在这里做错了什么,我该如何做对?

//Key

$key = 'SuperSecretKey';

//To Encrypt:
$encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, 'I want to encrypt this', MCRYPT_MODE_CFB);

//To Decrypt:
$decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $encrypted, MCRYPT_MODE_CFB);

echo $encrypted;
echo "<br>";
echo $decrypted;
4

3 回答 3

2

不是error它,它在文档warning中清楚地解释了

IV - 用于 CBC、CFB、OFB 模式下的初始化,以及 STREAM 模式下的某些算法。如果您不提供 IV,而算法需要它,则该函数会发出警告并使用所有字节都设置为“\0”的 IV。

于 2013-04-29T04:41:42.013 回答
1

看看文档

IV是 的第五个参数mcrypt_encrypt

用于 CBC、CFB、OFB 模式下的初始化,以及 STREAM 模式下的某些算法中。如果您不提供 IV,而算法需要它,则该函数会发出警告并使用所有字节都设置为“\0”的 IV。

于 2013-04-29T04:42:06.867 回答
0

与所有字节为 0 的 IV(初始化向量)相同的代码

$encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, 'I want to encrypt this', MCRYPT_MODE_CFB, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0");
$decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $encrypted, MCRYPT_MODE_CFB, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0");
于 2014-03-13T16:44:12.970 回答