在 gnupg-for-java 中为 GnuPG 密钥提供密码

Providing password for GnuPG keys in gnupg-for-java

我有一个 Java 应用程序,它从远程机器获取 GnuPG 加密文件,我需要解密和处理它们。然后我需要加密输出文件并将其发送到远程机器。

起初我尝试了gnupg-for-java (https://github.com/guardianproject/gnupg-for-java)。它有效,但它提示我输入密码来解密文件和签署加密文件。在文档中有“使用 GnuPG 2.x,gpg-agent 将处理提示用户输入密码以及密码缓存。

您知道如何在不提示用户的情况下提供密码吗?

使用 gpg-preset-passphrase,它通常位于 /usr/lib/gnupg2/gpg-preset-passphrase(而不是默认路径)。它也应该与 Windows 和 OS X.

上的常规 GnuPG 发行版一起安装

请注意,您必须通过在 ~/.gnupg/gpg-agent.conf 文件中设置 allow-preset-passphrase 选项来允许预设密码(必要时创建它,然后重新启动 gpg-agent)。另外,不要在多用户系统上使用 --passphrase 选项,每个非特权用户也可以读取所有其他应用程序的参数。请改为在 STDIN 上提供密码。