Problem bei Verwendung von Android-fingerprint: IV erforderlich, wenn die Entschlüsselung. Verwenden IvParameterSpec oder AlgorithmParameters zu geben

Habe ich nach dem ConfirmCredential Beispiel Android von Google, aber es zeigt nur, wie die Daten zu verschlüsseln. Wenn ich versuche es zu entschlüsseln, bekomme ich exception:

java.security.InvalidKeyException: IV required when decrypting. Use IvParameterSpec or AlgorithmParameters to provide it.

Ich verwende den folgenden code:

String transforation = KeyProperties.KEY_ALGORITHM_AES + "/" + KeyProperties.BLOCK_MODE_CBC + "/" + KeyProperties.ENCRYPTION_PADDING_PKCS7;

KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore");
keyStore.load(null);
SecretKey secretKey = (SecretKey) keyStore.getKey(KEY_NAME, null);

//encrypt
Cipher cipher = Cipher.getInstance(transforation);
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
String encriptedPassword = cipher.doFinal("Some Password".getBytes("UTF-8"));

//decrypt
cipher = Cipher.getInstance(transforation);
cipher.init(Cipher.DECRYPT_MODE, secretKey);
String password = new String(cipher.doFinal(encriptedPassword), "UTF-8"));

Ausnahme wird ausgelöst bei Zeile:

cipher.init(Cipher.DECRYPT_MODE, secretKey);

Jede Idee, was ist der richtige Weg, um die Entschlüsselung in diesem Fall?

  • Look at stackoverflow.com/questions/6669181/... und sehen, ob mit der Verwendung einer IvParameterSpec hilft.
  • Klar, doppelte IMHO.
  • Ich hatte bereits versucht, indem IV, aber es ging mit der exception: java.Sicherheit.InvalidAlgorithmParameterException: Anrufer-vorausgesetzt IV nicht zulässig, wenn die Verschlüsselung.
  • duplizieren Sie die Frage?
  • Die eine @ditkin verbunden.
InformationsquelleAutor Zlatko | 2015-10-19
Schreibe einen Kommentar