有没有办法 encrypt/decrypt 在不使用压缩的情况下使用 Bouncy Castle

Is there a way to encrypt/decrypt using Bouncy Castle without using compression

我正在寻找一种方法来 encrypt/decrypt files/byte 数组而不调用输入压缩。更准确地说,不想使用像

这样的东西
ByteArrayOutputStream bOut = new ByteArrayOutputStream();
PGPCompressedDataGenerator comData = new PGPCompressedDataGenerator(algorithm);
PGPUtil.writeFileToLiteralData(comData.open(bOut), PGPLiteralData.BINARY, new File(fileName));

欢迎任何参考,代码示例, 谢谢

您只需不添加执行此操作的代码即可避免在 PGP 中添加压缩。为了使您的问题变得明智,我希望您 post 一个具有 signing/encryption + 压缩的示例,然后我们可以建议如何删除压缩位。

实际上,最简单的方法可能是像这样设置 "uncompressed":

new PGPCompressedDataGenerator(algorithm, CompressionAlgorithmTags.UNCOMPRESSED)

更简单的方法是选择 CompressionAlgorithmTags.UNCOMPRESSED。如果你这样做,当你解密文件时,从对象 JcaPGPObjectFactory 你仍然会收到一个 PGPCompressedData (要解压缩)而不是 PGPLiteralData.

直接接收PGPLiteralData,你完全可以避免压缩。 以您的代码为例,您可以这样写:

ByteArrayOutputStream bOut = new ByteArrayOutputStream();
PGPUtil.writeFileToLiteralData(bOut, PGPLiteralData.BINARY, new File(fileName));