首页 新闻 会员 周边 捐助

如何判断byte[]被压缩过

0
悬赏园豆:40 [已解决问题] 解决于 2012-05-07 23:46

如果压缩的话 使用的是bouncycastle.net

菜鸟老了的主页 菜鸟老了 | 初学一级 | 园豆:145
提问于:2012-05-03 16:11
< >
分享
最佳答案
1

随便给一个BYTE[]判断是否被压缩过是不可能的。

任何一个压缩算法都会有压缩标识,对于一个给定的BYTE[]或STREAM,能判断的是是否是被指定的压缩算法压缩过(这个是规范,假如有人在写压缩的时候修改了规范或者不按照规则出牌则例外)。

至于BOUNCYCASTLE.NET,这个东东没接触过。

收获园豆:40
无之无 | 大侠五级 |园豆:5095 | 2012-05-03 16:34

我尝试这压缩了两个字符串 结果压缩标识不一样啊 所以就郁闷了

菜鸟老了 | 园豆:145 (初学一级) | 2012-05-03 23:31

@菜鸟老了: 每一种压缩技术压缩成的文档都会有一个相同的压缩头标识,这个是一个规范。

但是,有时,为了节省数据流量,压缩后的数据流输出只有内容不会有数据标识头,这个标识头则是通过其他的方式进行了说明,比如HTTP的压缩输出,数据压缩方案则是在HEADER里有描述。

你说的这个情况应该是压缩后的数据流,其中不包含有压缩工具设定的数据头。

一般的ZIP压缩有ZIP字样,WINRAR压缩有RAR字样。

无之无 | 园豆:5095 (大侠五级) | 2012-05-03 23:35

@笨笨蜗牛: 直接字符串

菜鸟老了 | 园豆:145 (初学一级) | 2012-05-07 23:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册