Jak mogę zaszyfrować ciąg w powłoce?

20

Czy mogę zaszyfrować wiadomość (ciąg) za pomocą klucza publicznego w wierszu polecenia? Jak mogę później odszyfrować wynik?

Der Hochstapler
źródło

Odpowiedzi:

28

Inną opcją jest 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
laalto
źródło
+1 za openssl, ponieważ jest częściej instalowany niż gpg
Doug Harris
To jest idealne - działa na Macu, Alpine, cokolwiek ... dobra robota!
Jeremy Iglehart,
tak, co powiesz na przykład, który nie używa pliku, ale argument?
Alexander Mills
11

Jeśli masz gpgzainstalowany, jest to metoda szyfrowania o przemysłowej sile.

gpg --encrypt -r [email protected]> plik tymczasowy

Wpisz dane w konsoli i naciśnij, Ctrl+Daby zakończyć tekst. To da ci zaszyfrowane dane tempfile. Aby odszyfrować:

gpg --decrypt <plik tymczasowy

Będziesz potrzebować hasła [email protected]do odszyfrowania wiadomości.

Greg Hewgill
źródło
ok, więc jeśli hasło musi być wprowadzane interaktywnie, jak to zrobić nieinteraktywnie? Jak to zrobić nieinteraktywnie?
Alexander Mills
gpg --encrypt -r [email protected] >tempfile gpg: error retrieving '[email protected]' via WKD: No data gpg: [email protected]: skipped: No data gpg: [stdin]: encryption failed: No data (Jestem na komputerze Mac)
Alexander Mills
5
  1. Wygeneruj parę kluczy prywatny / publiczny

    $ openssl genrsa -out rsa_key.pri 2048; openssl rsa -in rsa_key.pri -out rsa_key.pub -outform PEM -pubout
    
  2. Zaszyfruj ciąg za pomocą klucza publicznego i zapisz w pliku

    $ echo "stockexchange.com" | openssl rsautl -encrypt -inkey rsa_key.pub -pubin -out secret.dat
    
  3. Odszyfruj za pomocą klucza prywatnego

    $ string=`openssl rsautl -decrypt -inkey rsa_key.pri -in secret.dat `; echo $string
    stockexchange.com
    
Kexin Z
źródło
4

krypta człowieka (1)

Uwaga:

crypt implementuje maszynę z jednym wirnikiem zaprojektowaną zgodnie z niemiecką Enigmą, ale z 256-elementowym wirnikiem. Metody ataku na takich komputerach są powszechnie znane, dlatego szyfrowanie zapewnia minimalne bezpieczeństwo.

Ale to jest OK dla celów demonstracyjnych.

Nifle
źródło
„Oracle Solaris 10 8/11 Information Library”
Sebas