如何使用 GnuPG 对字符串进行加密?

3
我该如何使用命令行中的gpg加密给定的字符串? 我将公钥存储在名为pubkey.pub的文件中。 我认为我可以像这样简单地完成它。
gpg --import "path/to/pubkey.pub" --encrypt "my string to encrypt"

但这样是行不通的。

背景:由于服务器上没有安装PHP模块,我必须使用PHP exec命令来加密给定的文本。

1个回答

5

gpg 在加密时从标准输入读取数据,因此运行以下命令:

echo "my string to encrypt" | gpg --encrypt

gpg --import 命令会将密钥材料导入到 GnuPG 的密钥库中,它会一直保留在那里;因此您只需调用一次(这是一个相当慢的操作,因为它可能触发更新您的信任数据库)。


以下是一个易于记忆的命令,可以在终端中加密、签名并以ASCII码形式输出:echo "my string to encrypt" | gpg -aes 注意:您可以在开头添加一个空格,这样私人数据就不会被添加到bash历史记录中。 - Jonathan Cross
2
如果您想防止其对其他用户可见,请注意,在 GnuPG 运行的时间内(虽然可能很短),其他用户将能够读取该字符串。如果您想要防止这种情况,最好使用 gpg -aes <<EOT 或类似的从 STDIN 读取的结构。 - Jens Erat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接