Tôi có thể mã hóa tin nhắn (chuỗi) bằng khóa chung tại dấu nhắc lệnh không? Ngoài ra, làm thế nào tôi có thể giải mã kết quả sau đó?
Tôi có thể mã hóa tin nhắn (chuỗi) bằng khóa chung tại dấu nhắc lệnh không? Ngoài ra, làm thế nào tôi có thể giải mã kết quả sau đó?
Câu trả lời:
Một lựa chọn khác là 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
Nếu bạn đã gpg
cài đặt, đây là một phương pháp mã hóa cường độ công nghiệp.
gpg --encrypt -r receive@example.com> tempfile
Nhập dữ liệu tại bàn điều khiển và nhấn Ctrl+Dđể kết thúc văn bản. Điều này sẽ cung cấp cho bạn dữ liệu được mã hóa trong tempfile
. Để giải mã:
gpg --decrypt <tempfile
Bạn sẽ cần cụm mật khẩu recipient@example.com
để giải mã tin nhắn.
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
(Tôi đang ở trên máy mac)
Tạo cặp khóa riêng / chung
$ openssl genrsa -out rsa_key.pri 2048; openssl rsa -in rsa_key.pri -out rsa_key.pub -outform PEM -pubout
Mã hóa chuỗi bằng khóa chung và lưu trữ trong tệp
$ echo "stockexchange.com" | openssl rsautl -encrypt -inkey rsa_key.pub -pubin -out secret.dat
Hủy mã hóa bằng khóa riêng
$ string=`openssl rsautl -decrypt -inkey rsa_key.pri -in secret.dat `; echo $string
stockexchange.com
Ghi chú:
tiền điện tử thực hiện một máy một cánh quạt được thiết kế dọc theo các dòng của Enigma của Đức, nhưng với một rôto 256 phần tử. Các phương thức tấn công vào các máy như vậy được biết đến rộng rãi, do đó tiền điện tử cung cấp bảo mật tối thiểu.
Nhưng nó ổn cho mục đích trình diễn.