java - 在 gnupg-for-java 中提供 GnuPG key 的密码

标签 java encryption passwords gnupg gpgme

我有一个 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/

相关文章:

java序列化

java - 在 AuthenticationSuccessHandler 中设置 session 范围的对象

java - Spring Java Rest处理反序列化时的无效类型

javascript - 如何在浏览器解释后使用 curl 扫描页面

javascript - html 表单发送敏感数据 javascript https

java - 不确定我正在使用继承/多态性问题吗?

javascript - 如何用 CryptoJS 解密 AES

encryption - 使用 Hadoop 加密

linux - 如何使用 read 系统调用以交互方式获取密码

ios - 在 UIWebView 中自动填充用户名和密码