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の 5 番目のパラメータですmcrypt_encrypt

CBC、CFB、OFB モードでの初期化、および STREAM モードの一部のアルゴリズムで使用されます。アルゴリズムに必要な IV を指定しないと、関数は警告を発行し、すべてのバイトが "\0" に設定された IV を使用します。

于 2013-04-29T04:42:06.867 に答える