2015-03-12 18 views
5

लोड करने के लिए OSX Yosomite पर कमांड लाइन के माध्यम से एक पाठ संदेश एन्क्रिप्ट करने के लिए कोशिश कर रहा असमर्थ 10.10.2OpenSSL सार्वजनिक कुंजी

बनाया गया सार्वजनिक .pem कुंजी इस तरह:

ssh-keygen -f ~/.ssh/id_rsa.pub -e -t PKCS8 > id_rsa.pem 

अगर मैं myMessage.txt एन्क्रिप्ट करने के लिए कोशिश

openssl rsautl -encrypt -inkey ~/.ssh/id_rsa.pem -pubin -in ~/Desktop/myMessage.txt -out ~/Desktop/encrypted.txt 

मैं unable to load Public key

मैं तो मिल तो टाइप करें:

openssl asn1parse -in id_rsa.pem 

रिटर्न: Error: offset too large

लेकिन मैं पता नहीं है कि यह कैसे तय करने के लिए किया है। इसे काम करने के लिए मुझे क्या बदलना चाहिए?

उत्तर

12

अभी भी नहीं पता कि मेरे प्रश्न में क्या गलत हुआ लेकिन मुझे यहां एक समाधान मिला: http://openssl.6102.n7.nabble.com/Re-Can-I-use-my-own-keys-with-openssl-for-RSA-enc-dec-td12506.html उम्मीद है कि इसे यहां साझा करने की अनुमति है। मारेक Marcola लिए बिग धन्यवाद जो लिंक, जिसमें सवाल का जवाब कहते हैं निम्नलिखित:

1) उत्पन्न RSA कुंजी:

$ openssl rsa -in key.pem -pubout -out pub.pem 
$ openssl rsa -in pub.pem -pubin -text -noout 
:

$ openssl genrsa -out key.pem 1024 
$ openssl rsa -in key.pem -text -noout 

2) pub.pem फ़ाइल में सार्वजनिक कुंजी सहेजें एन्क्रिप्टेड डेटा

$ echo test test test > file.txt 
$ openssl rsautl -encrypt -inkey pub.pem -pubin -in file.txt -out file.bin 

4) डिक्रिप्ट:

3) कुछ डेटा एन्क्रिप्ट

$ openssl rsautl -decrypt -inkey key.pem -in file.bin 

यह एक आकर्षण

2

मैं भी इस समस्या का सामना करना पड़ा और लगता है कि एक अच्छा संकेत है यहाँ की तरह काम करता है:

How can I transform between the two styles of public key format, one "BEGIN RSA PUBLIC KEY", the other is "BEGIN PUBLIC KEY"

ऐसा लगता है कि OpenSSL एन्क्रिप्शन आदेश बजाय एक एसएसएल सार्वजनिक कुंजी चाहता है आरएसए सार्वजनिक कुंजी का।

अब हम इसे काम करने के लिए उदाहरण को ट्विक करने के लिए पर्याप्त जानते हैं। एक एसएसएल सार्वजनिक कुंजी

openssl rsa -in id_rsa.pem -RSAPublicKey_in -pubout > id_pub.pem 

यह तो

openssl rsautl -encrypt -inkey id_pub.pem -pubin -in ~/Desktop/myMessage.txt -out ~/Desktop/encrypted.txt 

इस लेखन प्रकट होता है के रूप में MacOSX Yosemite में डिफ़ॉल्ट openssl आदेश के साथ एन्क्रिप्शन कदम करने के लिए संभव है के साथ एक RSA सार्वजनिक कुंजी से उत्पन्न किया जा सकता 0.9.8zg होना इस संस्करण में आरएसए कमांड ऊपर दिए गए पहले आदेश को चलाने के लिए क्षमता का समर्थन नहीं करता है। मैंने ओपनएसएसएल 1.0.1 पी इंस्टॉल करके इस पर काम किया।

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