社区
C#
帖子详情
GZipStream压缩之后返回byte[],如何判断byte[]是否被压缩过?在线请教高手
liuying2500
2009-04-20 05:03:31
public byte[] Compress(byte[] b)
{
//压缩的方法,GZipStream实现
}
byte[] retByte = Compress(b);
问题:我如何判断这个byte数组retByte是否被压缩过呢??请高手指教
...全文
595
11
打赏
收藏
GZipStream压缩之后返回byte[],如何判断byte[]是否被压缩过?在线请教高手
public byte[] Compress(byte[] b) { //压缩的方法,GZipStream实现 } byte[] retByte = Compress(b); 问题:我如何判断这个byte数组retByte是否被压缩过呢??请高手指教
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liuying2500
2009-04-21
打赏
举报
回复
[Quote=引用 10 楼 soaringbird 的回复:]
byte[] Compress(byte[] b)
压缩返回的数组并不只是压缩后的数据,还有gzip的一些元数据的定义等等。
压缩后的那个byte[],前面都有一段相同的数据(我试了一些数据,是相同的),就是
1F-8B-08-00-00-00-00-00-04-00-ED-BD-07-60-1C-49-96-25-26-2F-6D-CA-7B-7F-4A-F5-4A-D7-E0-74-A1-08-80-60-13-24-D8-90-40-10-EC-C1-88-CD-E6-92-EC-1D-69-47-23-29-AB-2A-81-CA-65-56-65-5D-66-16-40-CC-ED-9D-BC-F7-DE-7B-EF-BD-F7-D…
[/Quote]
谢谢,经过昨天的研究,我认为你说的方式才是解决这个问题的正道,马上就结贴。
soaringbird
2009-04-20
打赏
举报
回复
byte[] Compress(byte[] b)
压缩返回的数组并不只是压缩后的数据,还有gzip的一些元数据的定义等等。
压缩后的那个byte[],前面都有一段相同的数据(我试了一些数据,是相同的),就是
1F-8B-08-00-00-00-00-00-04-00-ED-BD-07-60-1C-49-96-25-26-2F-6D-CA-7B-7F-4A-F5-4A-D7-E0-74-A1-08-80-60-13-24-D8-90-40-10-EC-C1-88-CD-E6-92-EC-1D-69-47-23-29-AB-2A-81-CA-65-56-65-5D-66-16-40-CC-ED-9D-BC-F7-DE-7B-EF-BD-F7-DE-7B-EF-BD-F7-BA-3B-9D-4E-27-F7-DF-FF-3F-5C-66-64-01-6C-F6-CE-4A-DA-C9-9E-21-80-AA-C8-1F-3F-7E-7C-1F-3F-22
所以,你可以判断byte[]前面是否包含这一段数据来判断是否是压缩过的数据。当然,限于正常的压缩数据,如果是变造的数据那就另说了。
liuying2500
2009-04-20
打赏
举报
回复
[Quote=引用 8 楼 tang_fu 的回复:]
public boolen Compress(byte[] b)
{
try
{
//压缩的方法,GZipStream实现
}
catch(except e)
{
.........
}
return true;
}
boolen retByte = Compress(b);
[/Quote]
非常感谢你回复,但是我compress方法必须要返回byte[]
tang_fu
2009-04-20
打赏
举报
回复
public
boolen
Compress(byte[] b)
{
try
{
//压缩的方法,GZipStream实现
}
catch(except e)
{
.........
}
return true;
}
boolen retByte = Compress(b);
liuying2500
2009-04-20
打赏
举报
回复
[Quote=引用 4 楼 wuyq11 的回复:]
比较解压缩内容是否与原内容一致
[/Quote]
这个源数据我是无法判断的,client端传递到WebService的数据就算没压缩过,也是被序列化了的,都是byte[]
liuying2500
2009-04-20
打赏
举报
回复
[Quote=引用 1 楼 ericzhangbo1982111 的回复:]
GZipStream
以前用过
你想判断的话在GZipStream里面修改下啊。
[/Quote]
能说的再稍微详细一点吗?谢谢
liuying2500
2009-04-20
打赏
举报
回复
我的程序序列化和解压缩之后都返回的是byte[],解压缩是发生在client端传递给WebService端的参数很大的时候,所以我要判断这些数据是否压缩过
wuyq11
2009-04-20
打赏
举报
回复
比较解压缩内容是否与原内容一致
supesa
2009-04-20
打赏
举报
回复
你的需求很奇怪,你为什么要判断是否要解压呢?无法从字节上判断是否压缩过。
chowyi
2009-04-20
打赏
举报
回复
GZipStream s = new GZipStream();
s.CanRead?压缩过:未
ericzhangbo1982111
2009-04-20
打赏
举报
回复
GZipStream
以前用过
你想判断的话在GZipStream里面修改下啊。
GZip
Stream
实现
压缩
以及出现的问题
在抓取页面的过程中,在存储抓取到的页面内容的时候我需要先将页面
压缩
再存储,为了使用上的方便,采用了2.0下的
GZip
Stream
来进行
压缩
。引用如下:using System.IO;using System.IO.Compression;......public static
byte
[] Compress(
byte
[] data){ Memory
C# 之
GZip
Stream
压缩
流
第一次接触,对于
GZIP
Stream
的两个方法有点疑惑: 该对象的Write方法原型: void
GZip
Stream
.Write(
byte
[] array,int offset,int count) 从指定的字节数组中将
压缩
的字节写入基础流 这样看解释是先要调用这个方法,通过
GZip
Stream
读取后在
压缩
吗? 该对象的Read方法原型: int
GZip
Stream
.Rea...
GZip
Stream
压缩
解压字符串
/// 使用
GZip
Stream
压缩
数据 public
byte
[] CompressionData(
byte
[] input) {
byte
[] temp = null; try { usin
vs2005
GZip
Stream
压缩
和解
压缩
压缩
函数 File
Stream
fs = new File
Stream
(@"E:/Heroes3.exe", FileMode.Open); File
Stream
DestnFile = File.Create(@"E:/a.exe");
byte
[] barr=new
byte
[fs.Length
.net 利用
GZip
Stream
压缩
和解
压缩
1.
GZip
Stream
类 此类在 .NET Framework 2.0 版中是新增的。 提供用于
压缩
和解
压缩
流的方法和属性 2.
压缩
byte
[] /// ///
压缩
数据 /// /// /// public
byte
[] Compress(byt
C#
111,129
社区成员
642,534
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章