【问题标题】:gpg --list-keys is empty but file decrypts bouncycastle encrypted filegpg --list-keys 为空,但文件解密 bouncycastle 加密文件
【发布时间】:2018-12-27 20:22:39
【问题描述】:

我目前在 Java 应用程序中使用 BouncyCastle PGP 从字符串中读取公钥,并使用该密钥加密文件。正在加载密钥...

Security.addProvider(new BouncyCastleProvider());
InputStream keyIn = new ByteArrayInputStream(publicKey.getBytes());
PGPPublicKeyRingCollection pgpKeyRing = new PGPPublicKeyRingCollection(PGPUtil.getDecoderStream(keyIn), new JcaKeyFingerpringCalculator());
PGPPublicKey = pgpKeyRing.getKeyRings().next().getPublicKey();

输出文件可以用

解密
gpg --decrypt file.gpg

即使 gpg --list-keysgpg --list-secret-keys 为空

这怎么可能?它是否可能从其他地方读取钥匙圈?我在 CentOS 7 上,我删除了 ~/.gnupg 并重新创建了它。

我还尝试更改用于加密的公钥,但它仍然可以解密。

【问题讨论】:

    标签: java encryption bouncycastle gnupg pgp


    【解决方案1】:

    事实证明,我的代码中有错误,并且正在写出 PGP 压缩文件的 Ascii 装甲版本,但未加密。正如它会发生的那样,gpg --decrypt 将解压缩这个文件,即使密钥环中没有密钥,因为它从不进行检查。 gpg --debug-level 9 有助于解决这个问题。

    【讨论】:

    • 您从未展示过您的加密代码,这会使这个问题无法回答。请添加缺少的代码。
    • 我可能不会发布适当的示例代码 - 但如果有人遇到他们可以“解密”但他们认为不应该拥有的文件,这个答案应该是一个足够的线索它的关键
    • 作为问答对,由于您所说的原因,它非常好,但是如果有显示错误的代码会很棒。但这是你的决定。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    • 1970-01-01
    • 1970-01-01
    • 2019-08-10
    • 2021-07-12
    • 1970-01-01
    相关资源
    最近更新 更多