मैं में PEM प्रारूप + PKCS # 1 (मुझे लगता है) एक RSA सार्वजनिक कुंजी है पढ़ने के लिए:कैसे में पीईएम + PKCS # एक RSA सार्वजनिक कुंजी 1 प्रारूप
-----BEGIN RSA PUBLIC KEY-----
MIGJAoGBAJNrHWRFgWLqgzSmLBq2G89exgi/Jk1NWhbFB9gHc9MLORmP3BOCJS9k
onzT/+Dk1hdZf00JGgZeuJGoXK9PX3CIKQKRQRHpi5e1vmOCrmHN5VMOxGO4d+zn
JDEbNHODZR4HzsSdpQ9SGMSx7raJJedEIbr0IP6DgnWgiA7R1mUdAgMBAAE=
-----END RSA PUBLIC KEY-----
मैं के SHA1 डाइजेस्ट प्राप्त करना चाहते हैं पायथन में इसका एएसएन 1 एन्कोडेड संस्करण। पहला कदम इस कुंजी को पढ़ने में होना चाहिए, लेकिन मैं PyCrypto में ऐसा करने में विफल रहा:
>> from Crypto.PublicKey import RSA
>> RSA.importKey(my_key)
ValueError: RSA key format is not supported
documentation of PyCrypto कहते पीईएम + PKCS # 1 समर्थित है, तो मैं उलझन में हूँ। मैंने M2Crypto भी कोशिश की है, लेकिन यह पता चला है कि M2Crypto PKCS # 1 का समर्थन नहीं करता है, लेकिन केवल X.50 9।
यह OpenSSL में PEM_write_bio_RSAPublicKey के माध्यम से उत्पन्न होता है। मेरा मानना है कि यह एक वैध पीईएम कुंजी है, और मैं इसे पायथन-आरएसए का उपयोग करके पढ़ने में कामयाब रहा। –
संस्करण 2.6 से शुरू हो रहा है, PyCrypto भी सार्वजनिक कुंजी ऑब्जेक्ट्स आयात कर सकता है ताकि ऊपर दिया गया कोड अब आवश्यक नहीं है। – SquareRootOfTwentyThree
पायथन 3 का उपयोग करके, एएसएन 1 डीकोड बाइट्स लौटाता है, जबकि 'निर्माण' की आवश्यकता होती है। कौन सा बाइट ऑर्डर का उपयोग किया जाता है? –