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

时间:2016-08-18 12:35:29

标签: java encryption passwords gnupg gpgme

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

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

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

1 个答案:

答案 0 :(得分:2)

使用gpg-preset-passphrase/usr/lib/gnupg2/gpg-preset-passphrase通常位于allow-preset-passphrase(而非默认路径)。它也应该在Windows和OS X上安装通常的GnuPG发行版。

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