Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有没有一种不用压缩就能用Bouncy Castle加密/解密的方法_Java_Encryption_Bouncycastle_Openpgp - Fatal编程技术网

Java 有没有一种不用压缩就能用Bouncy Castle加密/解密的方法

Java 有没有一种不用压缩就能用Bouncy Castle加密/解密的方法,java,encryption,bouncycastle,openpgp,Java,Encryption,Bouncycastle,Openpgp,我正在寻找一种在不调用输入压缩的情况下对文件/字节数组进行加密/解密的方法。更确切地说,我不想使用 ByteArrayOutputStream bOut = new ByteArrayOutputStream(); PGPCompressedDataGenerator comData = new PGPCompressedDataGenerator(algorithm); PGPUtil.writeFileToLiteralData(comData.open(bOut), PGPLiteralD

我正在寻找一种在不调用输入压缩的情况下对文件/字节数组进行加密/解密的方法。更确切地说,我不想使用

ByteArrayOutputStream bOut = new ByteArrayOutputStream();
PGPCompressedDataGenerator comData = new PGPCompressedDataGenerator(algorithm);
PGPUtil.writeFileToLiteralData(comData.open(bOut), PGPLiteralData.BINARY, new File(fileName));
任何参考,代码示例都比welecome,
谢谢。

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

实际上,最简单的方法可能是如下设置“未压缩”:

new PGPCompressedDataGenerator(algorithm, CompressionAlgorithmTags.UNCOMPRESSED)

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

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

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