首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PGP压缩加密

PGP压缩加密
EN

Stack Overflow用户
提问于 2017-10-13 20:12:14
回答 1查看 527关注 0票数 2

我用弹跳卡斯特来压缩和加密一些数据。如果出现空引用异常,则压缩方法将失败。以下方法执行压缩:

代码语言:javascript
复制
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();
                    }
                }
            }
        }

下一行将导致大容量引用异常:

代码语言:javascript
复制
pgpLiteralDataGenerator.Open(compressedStream, PgpLiteralData.Binary, null, data.Length, DateTime.UtcNow))

但是,我不知道为什么--如果我忽略了压缩,加密部分就会像预期的那样工作。我需要另一个库来执行压缩吗,

标记

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-20 09:29:53

下面的调用中的null参数导致了这个问题:

代码语言:javascript
复制
pgpLiteralDataGenerator.Open(compressedStream, PgpLiteralData.Binary, null, data.Length, DateTime.UtcNow))

这段代码是来自另一个项目的直接拷贝,但是在该项目中,B儿GURSCASTLESAPI是与iTextSharp一起引入的--我假设实现上有细微的差别。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46737400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档