2012-04-02 9 views
7

के साथ सुरक्षित आरएसए कुंजी उत्पन्न करें मैं डीईएस 3 के साथ पासवर्ड से सुरक्षित आरएसए कुंजी बनाने में सक्षम हूं (अच्छी तरह से ... मुझे लगता है कि क्योंकि मैं इस एन्क्रिप्शन दुनिया के लिए बहुत नया हूं) कमांड का उपयोग करके :PyCrypto: डीईएस 3 पासवर्ड

openssl genrsa -out "/tmp/myKey.pem" -passout pass:"f00bar" -des3 2048 

अब, मुझे लगता है कि एक अजगर स्क्रिप्ट के अंदर,, PyCrypto का उपयोग कर यदि संभव हो तो करना चाहते हैं। मैंने this message देखा है, जो ऐसा करने के लिए PyCrypto के उपयोग को हतोत्साहित करता है। क्या यह अभी भी ऐसा है?

बेशक

मैं हमेशा os.execute कॉल कर सकते हैं, और उपरोक्त आदेश पर अमल, लेकिन मैं विचार करूँगा कि "धोखा दे" :-)। मैं PyCrypto सीखने के लिए यह बहुत कुछ कर रहा हूँ।

अग्रिम धन्यवाद।

उत्तर

6

PyCrypto 2.5 से शुरू करना आप एक आरएसए निजी कुंजी निर्यात कर सकते हैं और इसे पासफ्रेज़ के तहत सुरक्षित कर सकते हैं। एक ट्रिपल डीईएस कुंजी आंतरिक रूप से पासफ्रेज़ से ली गई है और वास्तविक एन्क्रिप्शन करने के लिए उपयोग की जाती है। ।

उदाहरण के लिए: - लगता है क्या - PKCS #

from Crypto import RSA 
from Crypto import Random 

random_generator = Random.new().read 
key = RSA.generate(1024, random_generator) 
exportedKey = key.exportKey('PEM', 'my secret', pkcs=1) 

चर exportedKey PKCS # 1 (एक क्रिप्टोग्राफिक मानक के अनुसार इनकोडिंग, कुंजी के एक ASCII संस्करण (पीईएम) शामिल एक अन्य विकल्प के लिए pkcs=8 है 8)। चूंकि परिणाम मानक है, आप इसे ओपनएसएल सहित कई अन्य कार्यक्रमों के साथ उपयोग कर सकते हैं। और निश्चित रूप से, आप इसे PyCrypto के माध्यम से पाइथन में फिर से आयात भी कर सकते हैं!

exportKey विधि here दस्तावेज है।

+0

एक आकर्षण की तरह काम करना! प्रोक-प्रकार:: मैं openssl आदेश के साथ की तुलना में लगभग एक ही उत्पादन मिला 4, एन्क्रिप्टेड DEK-जानकारी: डेस-EDE3-सीबीसी, F7149C8E62E0854B 4fUV/FmaMmL7qZH83 + ocigFy [...] – BorrajaX

+0

बस मुझे समझ बनाने के लिए, इसका मतलब है कि निर्यात किया गया आदेश key = key.exportKey ('PEM', 'my secret', pkcs = 1), पासवर्ड 'मेरा रहस्य' से आरएसए कुंजी उत्पन्न करता है? क्या 'पीईएम' और पीकेसी के सुरक्षा प्रभाव हैं? –

+0

आरएसए कुंजी तब बनाई जाती है जब विधि 'जेनरेट' कहा जाता है। विधि 'निर्यात' इसे लेता है और इसे पीईएम प्रारूप में एन्कोड करता है। पीईएम और पीकेसीएस स्वरूपों में सुरक्षा कमजोरियों (मेरे लिए) स्पष्ट नहीं है। दिलचस्प बात यह है कि कैसे 3DES कुंजी पासवर्ड से ली गई है: जो 'openssl' की नकल करती है, जो काफी पुरानी एल्गोरिदम का उपयोग करती है। – SquareRootOfTwentyThree

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