Làm cách nào để mã hóa văn bản đơn giản bằng mật khẩu trên Linux?


2

http://www.unreadable.de/ nhận thông điệp văn bản gốc + mật khẩu nhập và mã hóa bản rõ. Tôi muốn làm điều này cục bộ trên Linux. Có một lệnh một dòng sẽ tính toán một phiên bản được mã hóa của tin nhắn của tôi mà sau đó tôi có thể gửi email không?

Mục tiêu của tôi là để người nhận có thể giải mã tin nhắn mà không cần gì ngoài mật khẩu.

Để rõ ràng, tôi không biết các chương trình mã hóa khác nhau là gì (AES, openSSL, RSA, GPG, salt, base64, DES, CBC, reentrant) và không thực sự quan tâm đến một dự án nghiên cứu. Tôi chỉ muốn một lệnh một dòng như

encrypt message.txt -password=secret.txt

mà sẽ được giải mã như

decrypt message.txt -password=secret.txt


(Vâng, tôi đã sử dụng google đầu tiên. Https://encrypted.google.com/search?q=encrypt+plain+text+files+with+password+linux không hiển thị cho tôi bất cứ điều gì tôi hiểu / nghĩ mình có thể sử dụng.)


Làm thế nào mã hóa mạnh mẽ để bạn muốn? Giải pháp phổ biến nhất là đính kèm tệp ZIP được bảo vệ bằng mật khẩu: không phải mã hóa mạnh nhất, nhưng bất kỳ ai có mật khẩu đều có thể đọc được, bất kể ứng dụng thư khách hay hệ điều hành. Nếu đó chỉ là một nhóm người được chọn mà bạn muốn gửi e-mail được mã hóa đến và tất cả các bạn đều sử dụng ứng dụng thư khách dựa trên Mozilla, thì tiện ích bổ sung EnigMail [ enigmail.net/home/index.php] cung cấp dễ dàng nhất giải pháp cho người gửi và người nhận sử dụng.
AFH

@AFH Đó ​​là một ý tưởng tốt!
đẳng cấu

Câu trả lời:


2

OpenSSL sẽ hoạt động. Từ Làm thế nào tôi có thể mã hóa một chuỗi trong shell? :

# 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

Để có cách tiếp cận đơn giản hơn nhưng kém an toàn hơn, hãy thử dùng mật mã: http://man7.org/linux/man-pages/man3/crypt.3.html


Cảm ơn Joseph! Tôi rất đánh giá cao phản ứng nhanh chóng.
đẳng cấu

2

Trang này openssl(1)đưa ra một vài ví dụ về cách thực hiện việc này:

 ENC EXAMPLES
      Just base64 encode a binary file:

            $ openssl base64 -in file.bin -out file.b64

      Decode the same file:

            $ openssl base64 -d -in file.b64 -out file.bin

      Encrypt a file using triple DES in CBC mode using a prompted password:

            $ openssl des3 -salt -in file.txt -out file.des3

      Decrypt a file using a supplied password:

            $ openssl des3 -d -in file.des3 -out file.txt -k mypassword

      Encrypt a file then base64 encode it (so it can be sent via mail for
      example) using Blowfish in CBC mode:

            $ openssl bf -a -salt -in file.txt -out file.bf

      Base64 decode a file then decrypt it:

            $ openssl bf -d -a -in file.bf -out file.txt

Đối với câu hỏi trên tay, sơ đồ mã hóa cụ thể chỉ có vấn đề vì tất nhiên cả hai bên phải sử dụng cùng một. Nếu bạn không biết nên sử dụng loại nào, thì blowfish có lẽ là một lựa chọn hợp lý:

$ openssl bf -a -salt -in file.txt -out file.bf
$ openssl bf -d -a -in file.bf -out file.txt

Tôi cho rằng bạn biết rằng mã hóa một cái gì đó mà không biết ít nhất một mức tối thiểu về hệ thống mật mã được sử dụng là có lẽ không khôn ngoan. Cá nhân, tôi nghĩ rằng một hệ thống như GPG phù hợp hơn với nhiệm vụ của bạn, nhưng yêu cầu thiết lập nhiều hơn một chút, vì vậy về mặt kỹ thuật không phù hợp với câu hỏi của bạn.


Tại sao ai đó downvote này? Có sai không?
đẳng cấu

@isomorphismes Tôi không biết, nhưng quan trọng hơn, tại sao bạn không bỏ phiếu? (Giả sử điều này hữu ích cho bạn)
slhck

@slhck Tôi vẫn đang cố chạy và hiểu cả hai câu trả lời.
đẳng cấu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.