एन्क्रिप्टेड PKCS8 निजी कुंजी के लिए "ब्लॉक में कोई DEK-जानकारी हेडर नहीं" त्रुटि को हल करना
जब एक एन्क्रिप्टेड PKCS8 निजी कुंजी का उपयोग करके डीकोड करने का प्रयास किया जाता है जाओ, आपको "ब्लॉक में कोई DEK-इन्फो हेडर नहीं" त्रुटि का सामना करना पड़ सकता है। यह इंगित करता है कि कुंजी डिकोडिंग फ़ंक्शन एन्क्रिप्टेड PKCS8 निजी कुंजी को संसाधित करने में सक्षम नहीं है।
प्रदान किए गए ओपनएसएसएल कमांड का उपयोग करके कुंजी का निर्माण सही प्रतीत होता है। हालाँकि, गो की मानक लाइब्रेरी मूल रूप से एन्क्रिप्टेड PKCS8 निजी कुंजियों को डिक्रिप्ट करने का समर्थन नहीं करती है। PKCS8 कुंजी डिक्रिप्शन। ऐसी लाइब्रेरी का एक उदाहरण "pkcs8" लाइब्रेरी है, जो GitHub पर उपलब्ध है।
मान लीजिए कि आपके पास "pkcs8" लाइब्रेरी का उपयोग करके PKCS8 कुंजी को डिक्रिप्ट करने के लिए निम्नलिखित कोड है:
आयात करें "github.com/youmark/pkcs8" func DecryptPKCS8(कुंजी []बाइट, पासवर्ड स्ट्रिंग) (*pkcs8.PrivateKey, त्रुटि) { ब्लॉक, _ := pem.Decode(कुंजी) वापसी pkcs8.Decrypt(ब्लॉक.बाइट्स, []बाइट(पासवर्ड)) }यह फ़ंक्शन एन्क्रिप्टेड PKCS8 कुंजी को बाइट स्लाइस के रूप में और डिक्रिप्शन पासवर्ड को तर्क के रूप में लेता है। इसके बाद यह PEM ब्लॉक को डिकोड करने का प्रयास करता है, जिसमें एन्क्रिप्टेड कुंजी डेटा होता है।यदि डिकोडिंग सफल होती है, तो फ़ंक्शन वास्तविक डिक्रिप्शन करने के लिए "pkcs8" लाइब्रेरी से डिक्रिप्ट फ़ंक्शन को कॉल करता है। डिक्रिप्ट की गई कुंजी को *pkcs8.PrivateKey संरचना के रूप में लौटाया जाता है।import "github.com/youmark/pkcs8"
func DecryptPKCS8(key []byte, password string) (*pkcs8.PrivateKey, error) {
block, _ := pem.Decode(key)
return pkcs8.Decrypt(block.Bytes, []byte(password))
}
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3