如何在 Linux 上使用密码加密纯文本?

如何在 Linux 上使用密码加密纯文本?

http://www.unreadable.de/接受纯文本消息 + 密码输入并加密纯文本。我想在 Linux 上本地执行此操作。是否有一行命令可以计算出我可以通过电子邮件发送的消息的加密版本?

我的目标是让接收者能够仅凭密码解码消息。

需要说明的是,我不知道各种加密方案是什么(AES、openSSL、RSA、GPG、salt、base64、DES、CBC、可重入),而且对研究项目也不感兴趣。我只想要一个单行命令,例如

encrypt message.txt -password=secret.txt

解码结果如下

decrypt message.txt -password=secret.txt


(是的,我确实先使用了谷歌。https://encrypted.google.com/search?q=encrypt+plain+text+files+with+password+linux没有向我显示任何我理解或认为我可以使用的内容。

答案1

手册页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

$ echo 'super secret message' > plain.txt

$ openssl enc -k secretpassword123 -aes256 -base64 -e -in plain.txt -out cipher.txt

$ cat cipher.txt

 U2FsdGVkX1+vXUvo9fOehyq11uH+za8COV/+UScl2w6JPiFoVm3pte639CMDBMTB

$ openssl enc -k secretpassword123 -aes256 -base64 -d -in cipher.txt -out plain_again.txt

$ cat plain_again.txt

super secret message

取自这里

答案3

OpenSSL 可以工作。从我怎样才能在 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

对于更简单但不太安全的方法,请尝试 crypt:http://man7.org/linux/man-pages/man3/crypt.3.html

答案4

我知道这是一个非常古老的话题,但也许一些正在寻找类似解决方案的人(我自己就是)会发现实用程序 ccrypt 很有用,这正是 OP 所要求的:简单的一行文件加密,适用于 Linux、Windows 和其他系统。

相关内容