2009-09-21 16 views
5
msg = "this is msg to encrypt" 

pub_key = M2Crypto.RSA.load_pub_key('mykey.py') // This method is taking PEM file. 

encrypted = pub_key.public_encrypt(msg, M2Crypto.RSA.pkcs1_padding) 

अब मैं इस विधि में पैरामीटर के रूप में radix64 प्रारूप सार्वजनिक कुंजी वाली फ़ाइल देने की कोशिश कर रहा हूं और अपेक्षित परिणाम प्राप्त करने में असमर्थ हूं i.e radix64 प्रारूप सार्वजनिक कुंजी का उपयोग करके एन्क्रिप्शन।सार्वजनिक कुंजी का उपयोग करके एन्क्रिप्ट कैसे करें?

क्या Python API में कोई अन्य विधि है जो कुछ तंत्र की कोशिश करने के बाद सार्वजनिक कुंजी का उपयोग करके संदेश एन्क्रिप्ट कर सकता है?

मुझे कुछ सार्वजनिक रैपिंग और radix64 प्रारूप में सार्वजनिक कुंजी सर्वर से मेरी सार्वजनिक कुंजी मिल रही है। मैं सार्वजनिक कुंजी को कैसे परिवर्तित कर सकता हूं ताकि इसे किसी भी एन्क्रिप्शन विधि द्वारा स्वीकार किया जा सके?

+0

क्या आपने इसे init किया (अगर मैं विफल रहता हूं तो मैं एनवीए एन्क्रिप्ट के लिए पाइथन का उपयोग करता हूं: पी)? – n00b

+0

समस्या कहां है? क्या यह 'load_pub_key()' में है या यह 'public_encrypt()' में है? किसी भी ट्रेसबैक सहित त्रुटि को शामिल करने के लिए कृपया अपना प्रश्न संपादित करें। यदि आप सार्वजनिक कुंजी फ़ाइल, यानी 'mykey.py' की सामग्री शामिल कर सकते हैं तो यह भी बहुत उपयोगी होगा – mhawke

उत्तर

0

कोई त्रुटि सार्वजनिक कुंजी में कहीं है, इस सवाल का मेरा उत्तर देखें। यह एक पीजीपी सार्वजनिक कुंजी प्रतीत होता है लेकिन अलग-अलग रेखा लंबाई के साथ, इसलिए इसे सीधे आरएसए सार्वजनिक कुंजी के रूप में उपयोग नहीं किया जा सकता है।

6

मामले में किसी को इस प्रश्न के लिए खोज करता है, मैं एक ही त्रुटि संदेश मिल रहा था:

M2Crypto.RSA.RSAError: no start line 

मेरे मामले में, यह पता चला कि मेरी चाबियाँ प्रकार यूनिकोड के थे। कुंजी को वापस एसीआई में परिवर्तित करके हल किया गया:

key.encode('ascii') 
संबंधित मुद्दे

 संबंधित मुद्दे