Zufällige IV für AES in Java generieren
Ich implementiere und AES-Verschlüsselungs-Engine für PBE in Android, und ich habe zwei Möglichkeiten gefunden, um die Erstellung der IV zu implementieren, und ich möchte wissen, welche besser und sicherer ist, umIvParameterSpec
:
Methode 1
SecureRandom randomSecureRandom = SecureRandom.getInstance("SHA1PRNG");
byte[] iv = new byte[cipher.getBlockSize()];
randomSecureRandom.nextBytes(iv);
IvParameterSpec ivParams = new IvParameterSpec(iv);
Methode # 2:
AlgorithmParameters params = cipher.getParameters();
byte[] iv2 = params.getParameterSpec(IvParameterSpec.class).getIV();
ivParams = new IvParameterSpec(iv2);