Bisakah saya mengenkripsi pesan (string) menggunakan kunci publik di command prompt? Juga, bagaimana saya bisa mendekripsi hasilnya setelah itu?
Bisakah saya mengenkripsi pesan (string) menggunakan kunci publik di command prompt? Juga, bagaimana saya bisa mendekripsi hasilnya setelah itu?
Jawaban:
Pilihan lain adalah 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
Jika Anda telah gpg
menginstal, ini adalah metode enkripsi kekuatan industri.
gpg --encrypt -r recipient@example.com> tempfile
Ketikkan data di konsol dan tekan Ctrl+Duntuk mengakhiri teks. Ini akan memberi Anda data terenkripsi di tempfile
. Untuk mendekripsi:
gpg --decrypt <tempfile
Anda akan membutuhkan frasa sandi untuk recipient@example.com
mendekripsi pesan.
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
(Saya menggunakan mac)
catatan:
crypt mengimplementasikan mesin satu rotor yang dirancang sepanjang garis Enigma Jerman, tetapi dengan rotor 256 elemen. Metode serangan pada mesin seperti ini sudah banyak diketahui, sehingga crypt memberikan keamanan minimal.
Tapi tidak apa-apa untuk tujuan demonstrasi.
Menghasilkan pasangan kunci pribadi / publik
$ openssl genrsa -out rsa_key.pri 2048; openssl rsa -in rsa_key.pri -out rsa_key.pub -outform PEM -pubout
Enkripsi string menggunakan kunci publik, dan simpan dalam file
$ echo "stockexchange.com" | openssl rsautl -encrypt -inkey rsa_key.pub -pubin -out secret.dat
Batalkan enkripsi menggunakan kunci pribadi
$ string=`openssl rsautl -decrypt -inkey rsa_key.pri -in secret.dat `; echo $string
stockexchange.com