Estoy seguro de que no hay una sola respuesta a esta pregunta, sino simplemente tratar de descubrir un enfoque general.¿Cómo debo generar un vector de inicialización?
Usando Java 1.4.2, necesito generar una clave y IV para usar en un algoritmo simétrico. Estos valores se compartirán previamente con el destinatario a través de un canal seguro.
La clave que puedo generar con KeyGenerator.keyGenerate(). Pero a menos que me lo pierda, no hay ninguna función para generar un IV aleatorio.
¿Debo hacer algo completamente arbitrario como extraer 16 bytes aleatorios de la memoria? ¿O existe una forma preferida de generar vectores de inicialización suficientemente aleatorios?
Cualquier orientación apreciada.
@schnaader - nit-pick - SHA1PRNG no es un verdadero RNG. Es un PRNG con (según la página a la que se vinculó) una verdadera semilla aleatoria. –
Tienes razón, editó la respuesta. – schnaader