Bagaimana saya bisa mengenkripsi string dalam shell?


18

Bisakah saya mengenkripsi pesan (string) menggunakan kunci publik di command prompt? Juga, bagaimana saya bisa mendekripsi hasilnya setelah itu?

Jawaban:


27

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

+1 untuk openssl karena lebih umum dipasang daripada gpg adalah
Doug Harris

Ini sempurna - berfungsi di Mac, Alpine, apa pun ... kerja bagus!
Jeremy Iglehart

ya bagaimana dengan contoh yang tidak menggunakan file tetapi argumen?
Alexander Mills

10

Jika Anda telah gpgmenginstal, 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.commendekripsi pesan.


ok, jadi jika frasa sandi perlu dimasukkan secara interaktif, bagaimana melakukannya secara non-interaktif? Bagaimana ini non-interaktif?
Alexander Mills

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)
Alexander Mills

4

man crypt (1)

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.


"Oracle Solaris 10 8/11 Information Library"
Sebas

4
  1. 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
    
  2. Enkripsi string menggunakan kunci publik, dan simpan dalam file

    $ echo "stockexchange.com" | openssl rsautl -encrypt -inkey rsa_key.pub -pubin -out secret.dat
    
  3. Batalkan enkripsi menggunakan kunci pribadi

    $ string=`openssl rsautl -decrypt -inkey rsa_key.pri -in secret.dat `; echo $string
    stockexchange.com
    
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.