我有一个 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 上提供密码。
关于java - 在 gnupg-for-java 中提供 GnuPG key 的密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39018419/