मेरे पास जावा कीस्टोर और कीटोल पर निम्नलिखित प्रश्न हैं। मुझे लगता है कि एक कीस्टोर में 1 से अधिक प्रमाणपत्र हो सकते हैं। जैसा कि मैंने कोशिश की है, keytool के माध्यम से मैं एक कीस्टोर बना सकता हूं, और इस कीस्टोर तक पहुंचने के लिए मुझे एक पासवर्ड सेट करना होगा। प्रत्येक प्रमाणपत्र प्रविष्टि तक पहुंचने के लिए मुझे एक पासवर्ड सेट करना होगा। क्या कुंजीस्टोर और प्रविष्टियों के लिए एक ही पासवर्ड रखना अनिवार्य है? यदि नहीं (और मुझे लगता है कि यह मानना उचित है) निम्नलिखित कोड क्यों है:जावा कीस्टोर और पासवर्ड सेटिंग्स
char[] pwd = new char[]{'s','e','c','r','e','t'};
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
ks.load(new FileInputStream("myPersonal.keystore"), pwd);
kmf.init(ks, pwd);//fails here with exception
मुझे निम्नलिखित अपवाद देता है?
Exception in thread "main" java.security.UnrecoverableKeyException: Cannot recover key
at sun.security.provider.KeyProtector.recover(Unknown Source)
at sun.security.provider.JavaKeyStore.engineGetKey(Unknown Source)
at sun.security.provider.JavaKeyStore$JKS.engineGetKey(Unknown Source)
at java.security.KeyStore.getKey(Unknown Source)
secret
कुंजीस्टोर myPersonal.keystore
मैं Keytool के माध्यम से बनाया है जो उपयोग करने के लिए पासवर्ड है। प्रमाण पत्र, 1 डीएसए और 1 आरएसए के लिए इसमें 2 प्रविष्टियां हैं। प्रत्येक केस्टस्टोर (और एक दूसरे) के साथ एक अलग पासवर्ड होता है। अब कोड सही है, क्योंकि अगर मैं एक हीस्टोर एंट्री के साथ एक कीस्टोर का उपयोग करता हूं, जिसमें कुंजीस्टोर के समान पासवर्ड होता है तो कोई अपवाद नहीं होता है और प्रोग्राम ठीक चलता है।
तो यहां समस्या क्या है? मेरे पास अलग-अलग पासवर्ड नहीं होना चाहिए? मेरे पास कई प्रमाणपत्र नहीं होना चाहिए? और क्या?
तो आप कह रहे हैं कि यह एक निहित आवश्यकता है? क्या इस प्रतिबंध को KeyManagerFactory में मजबूर करने का कोई कारण है? मुझे लगता है कि वास्तविक परिदृश्यों में सामान्य केस विभिन्न पासवर्ड – Cratylus
का उपयोग करना है यह KeyManagerFactory की एपीआई परिभाषा के लिए निहित है । मुझे लगता है कि एपीआई सबसे सरल परिदृश्य को संभालने के लिए बनाया गया था, जो कि सभी चाबियों का एक ही पासवर्ड होगा। KeyManagerFactory एक साधारण तंत्र है जो कवर करता है जो अधिक सामान्य दृष्टिकोण हो सकता है (मैंने सत्यापित नहीं किया है)। कीस्टोर एपीआई आपको विभिन्न पासवर्ड के साथ विभिन्न कुंजियों तक पहुंचने की अनुमति देता है, जो आपको अधिक जटिल परिदृश्यों के लिए कार्यक्षमता बढ़ाने की अनुमति देता है। एपीआई परिभाषा के पीछे तर्क के रूप में ... यह कहना मुश्किल है। –
यह काम करता है। मदद की सराहना करो! – Bai