Tengo una función de PHP que he escrito que utiliza una cadena binaria de 64 bits y un vector de inicialización aleatorio para codificar los datos utilizando el siguiente principio básico:
$encrypted = openssl_encrypt($data_to_encrypt, AES_256_CTR, $64bit_binary_string, 0, $iv);
Luego, para poder descifrar el mensaje, debo saber el IV, así que lo vinculo al nuevo hash con un separador de dos puntos:
$encrypted = $encrypted . ':' . $iv;
Finalmente, codifico en base64 todo para otro propósito
He leído que la IV no necesita ser secreta mientras sea aleatoria. Si esto es cierto, ¿tengo razón al suponer que es seguro incluirlo al final del hash como este? Obviamente, la base64 es fácil de revertir, así que una vez hecho esto, asumo que sería fácil para cualquiera adivinar qué es la IV. El problema sería decodificar la cadena de 64 bits.