【发布时间】:2018-05-22 18:39:10
【问题描述】:
我有一个名为“filename.txt.pgp”的 PGP 文件需要解密。当我从命令行运行解密时,它只要求我输入密码。我使用 gpg 命令:
gpg filename.txt.pgp
密码足够了,我的文件被解密了。我可以阅读它的内容。
现在,我应该用 Java 创建一个实用程序。经过研究,我发现 Bouncy Castle 图书馆是我的最佳选择。但是我能找到的所有 Java 示例都使用了我没有的公钥/私钥文件。
您能帮我举一个仅使用密码解密 PGP 文件的 Java 示例吗?
谢谢。
【问题讨论】:
-
PGP 使用包含您的公钥/私钥的密钥环的概念。您将使用密码访问密钥环(通过 Bouncy Castle APIs)并检索相关密钥(通过 Bouncy Castle APIs),最后解码和解密文件(通过 Bouncy Castle APIs)。 Google 可以为您提供很多示例,例如 stackoverflow.com/questions/6987699/…。
-
我从 FTP 接收文件,我只知道密码。我没有任何钥匙圈。所以,我没有公钥/私钥。密码可以是我的公钥吗?
-
如果你正在解密一个 pgp 文件,这意味着你给了对方你的公钥并且你的私钥在你的密钥环中(这就是为什么命令行工具只与密码)。在您的主目录中查找名为“.gnupg”的目录 - 这是 gpg 存储密钥环的默认位置。
-
没有。我是这里的“另一方”。我只收到了文件和密码。然后我安装了一些 PGP 实用程序,这就是我有 gpg 命令的原因。
-
那么,看起来我收到的短语是来自发件人的 PublicKey,对吧?但是,如果没有任何密钥环之类的东西,我的 Java 程序应该如何在另一台计算机上运行呢?
标签: java encryption bouncycastle pgp