की init पर एक InvalidKeyException फेंक करता है ऐसा क्यों कामयाब होने की init:क्यों मेरी एईएस सिफर DECRYPT_MODE
Cipher AESCipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
AESCipher.init(Cipher.ENCRYPT_MODE, secretKey, secRandom);
जबकि इस विफल रहता है:
Cipher AESCipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
AESCipher.init(Cipher.DECRYPT_MODE, secretKey, secRandom);
धागा "मुख्य" जावा में एक अपवाद फेंकने। security.InvalidKeyException: एक यादृच्छिक सेंट के साथ पैरामीटर लापता
secretKey एक Keygenerator द्वारा उत्पन्न होता है, और SecureRandom.getInstance ("SHA1PRNG") द्वारा secureRandom एटिक बीज सेट।
धन्यवाद
आप डिक्रिप्शन ऑपरेशन के लिए आरएनजी क्यों पास करते हैं? मुझे लगता है कि आरएनजी का उपयोग चतुर्थ उत्पन्न करने के लिए किया जाता है, इसलिए डिक्रिप्शन के लिए आपको शायद चतुर्थ में प्रवेश करना होगा और आरएनजी नहीं। – CodesInChaos
धन्यवाद। तो init को पहली जगह में एक secRandom क्यों मिलता है? सेकेंडैंडम से पहले कुछ बाइट प्राप्त करने का सही तरीका है, उन्हें एक चतुर्थ के रूप में सहेजें और फिर उन्हें एक नया IvParameterSpec का उपयोग करने के रूप में उपयोग करें? बाद में चतुर्थई को उसी तरह से डिक्रिप्शन पर पास कर दिया गया? – user54000
यह शायद आरएनजी लेता है ताकि यह आपको इसके साथ परेशान करने के बजाय IV IV बना सके। लेकिन मैं जावा क्रिप्टो एपीआई से परिचित नहीं हूं। – CodesInChaos