gpt4 book ai didi

java - 如何在Java中使用公钥OpenPGP(GPG)而无需访问物理 key 环

转载 作者:行者123 更新时间:2023-11-30 03:38:46 26 4
gpt4 key购买 nike

设置:

  • 使用 GnuPG 的 Linux 或使用 GPG4Win(OpenPGP) 的 Windows
  • 2048 RSA key 对已由可以访问 key 环的特权用户创建
  • 已创建第二个较低权限的用户,以便在其下运行 Java 应用程序
  • 已授予该用户运行 GPG 命令的权限,但无法访问物理 key 环文件
  • Java 应用程序已知 key ID,提取私钥的密码也是已知的
  • Java 应用程序已导入 BouncycaSTLe 库
  • java程序需要使用 key 对进行加密和解密

问题:

我已经使用 BouncycaSTLe 成功执行了加密和解密。但它涉及尝试从发布和加密文件中读取公钥和私钥。为了安全起见,我不想让 java 应用程序直接访问 key 环文件。

我有什么选择。 BouncycaSTLe 中是否有任何选项可以在不读取 key 环或将 key 导出到单独文件的情况下执行此操作

注意:没有必要使用充气城堡。

最佳答案

您的 Java 应用程序可以使用执行该应用程序的用户当前拥有的任何权限来调用 gnupg。幸运的是,gnupg 支持丰富的command-line options允许您提供所有必要的参数并读取/收集状态和结果,例如 -batch-options-status-fd 。您可以从 Java 调用程序并使用 Java 的 ProcessBuilder 读回其结果。或更高级的库,例如 Plexus Utils

另一方面,至少有一个 java-based wrapper library直接与 GnuPG 可执行文件对话。虽然依赖于平台,但与为每个事务生成一个进程相比,这可能具有速度优势;并且可能会节省您大量的实现工作来确定命令行选项。

请注意,以这种方式使用 GnuPG 完全绕过了 BouncyCaSTLe —— 您将自动调用 GnuPG,有效地将其用作您的“库”。

关于java - 如何在Java中使用公钥OpenPGP(GPG)而无需访问物理 key 环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27232591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com