是否可以加密gpg中的原始输入?

时间:2015-01-21 23:31:06

标签: encryption gnupg

我想加密字符串而不将其写入文件。

使用GPG加密文件的方法是

gpg --encrypt --sign --armor -r <target@email.com> -r <sender@email.com> <filename.txt>

我想要的是能够简单地输入filename.txt所在的字符串或一系列数字,然后将其加密到文件中。

gpg --encrypt --sign --armor -r <target@email.com> -r <sender@email.com> <"this is a string that needs to be encrypted">

有没有办法做到这一点,或者是否需要传递filename.txt?

2 个答案:

答案 0 :(得分:1)

我不知道任何允许您将输入作为参数传递的选项,但您只需使用管道:

echo 'foo bar' | gpg -r target@example.com --encrypt

您当然可以添加您使用的所有其他选项和命令。通过使用管道,输出不会存储为中间文件,但echo的stdout和gpg的stdin使用一个小的内存缓冲区连接。

答案 1 :(得分:0)

如果您正在使用bash,则可以使用HEREDOC语法,该语法对于多行字符串很有用。您只需复制并粘贴多行字符串,而不必担心转义。

gpg -r target@email.com --encrypt -o out.gpg <<< 'HEREDOC'
first line
second line
HEREDOC