Uso del vector de inicialización en openssl_encrypt
Eché un vistazo aesta Pregunta, y quería hacerlo por mí mismo. Cuando ejecuté este código (tomado directamente deesta respuesta):
$textToEncrypt = "My super secret information.";
$encryptionMethod = "AES-256-CBC"; // AES is used by the U.S. gov't to encrypt top secret documents.
$secretHash = "25c6c7ff35b9979b151f2136cd13b0ff";
//To encrypt
$encryptedMessage = openssl_encrypt($textToEncrypt, $encryptionMethod, $secretHash, '1234567812345678');
//To Decrypt
$decryptedMessage = openssl_decrypt($encryptedMessage, $encryptionMethod, $secretHash);
//Result
echo "Encrypted: $encryptedMessage <br>Decrypted: $decryptedMessage";
Sin embargo me sale la advertencia
openssl_encrypt(): Using an empty Initialization Vector (iv) is potentially insecure and not recommended
Así que fui y eché un vistazo a ladocs, pero no hay 'documentación'. encontré estocomentario, pero aún no se menciona lo que debería ser el Vector de Inicialización y cómo debería usarlo. ¿Alguien me puede iluminar?
Sé que podría haber realizado más búsquedas en Google, pero Stackoverflow aparece primero en tantos resultados de búsqueda que pensé que esta pregunta podría ser útil para cualquier otra persona que tuviera este problema.