2

http://www.unreadable.de/ принимает текстовое сообщение + ввод пароля и шифрует открытый текст. Я хочу сделать это локально в Linux. Существует ли однострочная команда, которая вычислит зашифрованную версию моего сообщения, которую я затем смогу отправить по электронной почте?

Моя цель - чтобы получатель мог расшифровать сообщение, используя только пароль.

Чтобы было ясно, я понятия не имею, какие существуют различные схемы шифрования (AES, openSSL, RSA, GPG, salt, base64, DES, CBC, reentrant) и не очень заинтересован в исследовательском проекте. Я просто хочу однострочную команду, как

encrypt message.txt -password=secret.txt

который будет расшифрован как

decrypt message.txt -password=secret.txt


(Да, я использовал Google в первую очередь. Https://encrypted.google.com/search?q=encrypt+plain+text+files+with+password+linux не показывает мне ничего, что я понимаю / думаю, что могу использовать.)

2 ответа2

2

Страница openssl(1) дает несколько примеров того, как это сделать:

 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

Что касается рассматриваемого вопроса, конкретная схема шифрования имеет значение только в том случае, если обе стороны, конечно, должны использовать одну и ту же. Если вы не знаете, какой из них использовать, Blowfish, вероятно, является разумным выбором:

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

Я полагаю, вы знаете, что шифрование чего-либо, не зная хотя бы минимума об используемой криптосистеме,… вероятно, неразумно. Лично я считаю, что такая система, как GPG, лучше подходит для вашей задачи, но требует немного больше настроек, поэтому технически не подходит под ваш вопрос.

2

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

Для более простого, но менее безопасного подхода попробуйте crypt: http://man7.org/linux/man-pages/man3/crypt.3.html

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .