प्रदान करने के लिए मैं ConfirmCredential एंड्रॉयड गूगल द्वारा प्रदान उदाहरण का अनुसरण कर रहा हूँ, लेकिन यह केवल पता चलता डेटा एन्क्रिप्ट करने के लिए कैसे।एंड्रॉइड फिंगरप्रिंट का उपयोग करते समय समस्या: डीक्रिप्ट करने पर IV आवश्यक है। उपयोग IvParameterSpec या AlgorithmParameters यह
java.security.InvalidKeyException: IV required when decrypting. Use IvParameterSpec or AlgorithmParameters to provide it.
मैं निम्नलिखित कोड का उपयोग करें::
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"));
अपवाद लाइन पर फेंक दिया जाता है: जब मैं उसे डीक्रिप्ट करने की कोशिश मैं अपवाद
cipher.init(Cipher.DECRYPT_MODE, secretKey);
है क्या पर कोई विचार इस मामले में डिक्रिप्शन करने का उचित तरीका?
http://stackoverflow.com/questions/6669181/why-does-my-aes-encryption-throws-an-invalidkeyexception पर देखें और देखें कि IvParameterSpec का उपयोग करके उपयोग करने में मदद मिलती है। – ditkin
डुप्लिकेट IMHO साफ़ करें। – JimmyB
@ditkin मैं पहले से ही चतुर्थ जोड़ने की कोशिश की है, लेकिन यह अपवाद के साथ हुई थी: java.security.InvalidAlgorithmParameterException: जब एन्क्रिप्ट करने कोलर-प्रदान की चतुर्थ अनुमति नहीं है। – Zlatko