मैं शेल में स्ट्रिंग को कैसे एन्क्रिप्ट कर सकता हूं?


20

क्या मैं कमांड प्रॉम्प्ट पर सार्वजनिक कुंजी का उपयोग करके एक संदेश (स्ट्रिंग) को एन्क्रिप्ट कर सकता हूं? इसके अलावा, मैं बाद में परिणाम कैसे डिक्रिप्ट कर सकता हूं?

जवाबों:


28

एक अन्य विकल्प है openssl:

# generate a 2048-bit RSA key and store it in key.txt
openssl genrsa -out key.txt 2048

# encrypt "hello world" using the RSA key in key.txt
echo "hello world" | openssl rsautl -inkey key.txt -encrypt >output.bin

# decrypt the message and output to stdout
openssl rsautl -inkey key.txt -decrypt <output.bin

Opensl के लिए +1 चूंकि यह सामान्य रूप से gpg की तुलना में अधिक संस्थापित है
डग हैरिस

यह एकदम सही है - मैक, अल्पाइन पर काम करता है, कुछ भी ... अच्छा काम!
जेरेमी इगलहार्ट

हाँ कैसे एक फ़ाइल का उपयोग नहीं बल्कि एक तर्क के बारे में एक उदाहरण के बारे में?
अलेक्जेंडर मिल्स

11

यदि आपने gpgस्थापित किया है, तो यह एक औद्योगिक शक्ति एन्क्रिप्शन पद्धति है।

gpg --encrypt -r प्राप्तकर्ता@example.com> अस्थायी

कंसोल पर डेटा टाइप करें और Ctrl+Dटेक्स्ट को समाप्त करने के लिए दबाएं । यह आपको एन्क्रिप्टेड डेटा देगा tempfile। डिक्रिप्ट करने के लिए:

gpg --decrypt <tempfile

recipient@example.comसंदेश को डिक्रिप्ट करने के लिए आपको पासफ़्रेज़ की आवश्यकता होगी ।


ठीक है, इसलिए यदि पासफ़्रेज़ को अंतःक्रियात्मक रूप से इनपुट करने की आवश्यकता है, तो इसे गैर-संवादात्मक कैसे किया जाए? यह कैसे गैर-अंतःक्रियात्मक है?
अलेक्जेंडर मिल्स

gpg --encrypt -r recipient@example.com >tempfile gpg: error retrieving 'recipient@example.com' via WKD: No data gpg: recipient@example.com: skipped: No data gpg: [stdin]: encryption failed: No data (मैं एक मैक पर हूँ)
अलेक्जेंडर मिल्स

5
  1. एक निजी / सार्वजनिक कुंजी जोड़ी बनाएं

    $ openssl genrsa -out rsa_key.pri 2048; openssl rsa -in rsa_key.pri -out rsa_key.pub -outform PEM -pubout
    
  2. सार्वजनिक कुंजी का उपयोग करके स्ट्रिंग को एन्क्रिप्ट करें, और किसी फ़ाइल में संग्रहीत करें

    $ echo "stockexchange.com" | openssl rsautl -encrypt -inkey rsa_key.pub -pubin -out secret.dat
    
  3. निजी कुंजी का उपयोग कर अन-एनक्रिप्ट करें

    $ string=`openssl rsautl -decrypt -inkey rsa_key.pri -in secret.dat `; echo $string
    stockexchange.com
    

4

आदमी क्रिप्ट (1)

ध्यान दें:

क्रिप्ट जर्मन एनिग्मा की तर्ज पर डिज़ाइन किए गए एक-रोटर मशीन को लागू करता है, लेकिन एक 256-तत्व रोटर के साथ। ऐसी मशीनों पर हमले के तरीके व्यापक रूप से ज्ञात हैं, इस प्रकार क्रिप्ट न्यूनतम सुरक्षा प्रदान करता है।

लेकिन यह प्रदर्शन उद्देश्यों के लिए ठीक है।


"ओरेकल सोलारिस 10 8/11 सूचना पुस्तकालय"
सेबास
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.