如何使用 GnuPG 加密字符串?

Yep*_*sMe 3 php encryption gnupg pgp exec

如何从命令行使用 gpg 加密给定的字符串?我将公钥存储在一个名为 pubkey.pub 的文件中,我想我可以简单地用类似的东西来做到这一点。

gpg --import "path/to/pubkey.pub" --encrypt "my string to encrypt"
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。

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

Jen*_*rat 5

gpg加密时从标准输入读取,然后运行

echo "my string to encrypt" | gpg --encrypt
Run Code Online (Sandbox Code Playgroud)

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

  • 如果您想防止其他用户看到它,请注意,在 GnuPG 运行期间(尽管可能很短),其他用户将能够读取该字符串。如果您想防止这种情况,最好使用 `gpg -aes <<EOT` 或从 STDIN 读取的类似结构。 (2认同)