gpt4 book ai didi

c# - PGP 压缩和加密

转载 作者:太空宇宙 更新时间:2023-11-03 12:22:04 28 4
gpt4 key购买 nike

我正在使用 Bouncy CaSTLes 来压缩和加密一些数据。压缩方法因空引用异常而失败。以下方法执行压缩:

private byte[] Compress(byte[] data)
{
using (MemoryStream outStream = new MemoryStream())
{
PgpCompressedDataGenerator pgpCompressedDataGenerator = new PgpCompressedDataGenerator(CompressionAlgorithmTag.Zip);
using (Stream compressedStream = pgpCompressedDataGenerator.Open(outStream))
{
PgpLiteralDataGenerator pgpLiteralDataGenerator = new PgpLiteralDataGenerator();

using (Stream literalDataStream = pgpLiteralDataGenerator.Open(compressedStream, PgpLiteralData.Binary, null, data.Length, DateTime.UtcNow))
{
literalDataStream.Write(data, 0, data.Length);

literalDataStream.Close();

pgpCompressedDataGenerator.Close();

return outStream.ToArray();
}
}
}
}

以下行导致批量引用异常:

pgpLiteralDataGenerator.Open(compressedStream, PgpLiteralData.Binary, null, data.Length, DateTime.UtcNow))

但是我不知道为什么 - 如果我不考虑压缩,加密部分会按预期工作。我是否需要另一个库来执行压缩,

标记

最佳答案

原来是下面调用中的 null 参数导致了问题:

pgpLiteralDataGenerator.Open(compressedStream, PgpLiteralData.Binary, null, data.Length, DateTime.UtcNow))

此代码是从另一个项目直接复制的,但是在该项目中,Bouncy CaSTLes API 是随 iTextSharp 引入的 - 我假设在实现上存在细微差别。

关于c# - PGP 压缩和加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46737400/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com