Czy mogę zaszyfrować wiadomość (ciąg) za pomocą klucza publicznego w wierszu polecenia? Jak mogę później odszyfrować wynik?
Czy mogę zaszyfrować wiadomość (ciąg) za pomocą klucza publicznego w wierszu polecenia? Jak mogę później odszyfrować wynik?
Odpowiedzi:
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
Jeśli masz gpg
zainstalowany, jest to metoda szyfrowania o przemysłowej sile.
gpg --encrypt -r odbiorca@example.com> 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 recipient@example.com
do odszyfrowania wiadomości.
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
(Jestem na komputerze Mac)
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
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
Odszyfruj za pomocą klucza prywatnego
$ string=`openssl rsautl -decrypt -inkey rsa_key.pri -in secret.dat `; echo $string
stockexchange.com
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.