我有一个Java应用程序从远程计算机获取GnuPG加密文件,我需要解密和处理它们。然后我需要加密输出文件并将其发送到远程机器。
起初我尝试了gnupg-for-java
(https://github.com/guardianproject/gnupg-for-java)。它有效,但它会提示我输入解密文件和签名加密文件的密码。在文档中有“使用GnuPG 2.x,gpg-agent将处理提示用户输入密码,以及密码缓存。”
您是否知道如何在不提示用户的情况下提供密码?
答案 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上提供密码。