क्या मैं कमांड प्रॉम्प्ट पर सार्वजनिक कुंजी का उपयोग करके एक संदेश (स्ट्रिंग) को एन्क्रिप्ट कर सकता हूं? इसके अलावा, मैं बाद में परिणाम कैसे डिक्रिप्ट कर सकता हूं?
क्या मैं कमांड प्रॉम्प्ट पर सार्वजनिक कुंजी का उपयोग करके एक संदेश (स्ट्रिंग) को एन्क्रिप्ट कर सकता हूं? इसके अलावा, मैं बाद में परिणाम कैसे डिक्रिप्ट कर सकता हूं?
जवाबों:
एक अन्य विकल्प है 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
यदि आपने 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
(मैं एक मैक पर हूँ)
एक निजी / सार्वजनिक कुंजी जोड़ी बनाएं
$ openssl genrsa -out rsa_key.pri 2048; openssl rsa -in rsa_key.pri -out rsa_key.pub -outform PEM -pubout
सार्वजनिक कुंजी का उपयोग करके स्ट्रिंग को एन्क्रिप्ट करें, और किसी फ़ाइल में संग्रहीत करें
$ echo "stockexchange.com" | openssl rsautl -encrypt -inkey rsa_key.pub -pubin -out secret.dat
निजी कुंजी का उपयोग कर अन-एनक्रिप्ट करें
$ string=`openssl rsautl -decrypt -inkey rsa_key.pri -in secret.dat `; echo $string
stockexchange.com
ध्यान दें:
क्रिप्ट जर्मन एनिग्मा की तर्ज पर डिज़ाइन किए गए एक-रोटर मशीन को लागू करता है, लेकिन एक 256-तत्व रोटर के साथ। ऐसी मशीनों पर हमले के तरीके व्यापक रूप से ज्ञात हैं, इस प्रकार क्रिप्ट न्यूनतम सुरक्षा प्रदान करता है।
लेकिन यह प्रदर्शन उद्देश्यों के लिए ठीक है।