我从这个网站获得了以下代码。当我运行它时,我得到了
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;
答案 0 :(得分:2)
它error
不是warning
,Documentation
IV - 用于CBC,CFB,OFB模式的初始化,以及STREAM模式下的某些算法。如果您不提供IV,而算法需要它,则该函数会发出警告并使用IV,其所有字节都设置为“\ 0”。
答案 1 :(得分:1)
只需查看the documentation。
IV
是mcrypt_encrypt
的第五个参数。
用于CBC,CFB,OFB模式的初始化,以及STREAM模式下的某些算法。如果您不提供IV,而算法需要它,则该函数会发出警告并使用IV,其所有字节都设置为“\ 0”。
答案 2 :(得分:0)
与IV(初始化向量)相同的代码,所有字节都为0
$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");