有没有办法在不使用压缩的情况下使用Bouncy Castle加密/解密

时间:2015-10-13 20:44:16

标签: java encryption bouncycastle openpgp

我正在寻找一种加密/解密文件/字节数组的方法,而不需要调用压缩输入。要更精确,不要使用像

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

任何参考,代码示例都超过welecome, 感谢。

2 个答案:

答案 0 :(得分:2)

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

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

new PGPCompressedDataGenerator(algorithm, CompressionAlgorithmTags.UNCOMPRESSED)

答案 1 :(得分:0)

更简单的方法是选择CompressionAlgorithmTags.UNCOMPRESSED。如果这样做,则在解密文件时,对象JcaPGPObjectFactory仍会收到PGPCompressedData(将被解压缩)而不是PGPLiteralData

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

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