2017-05-25 47 views
5

我目前正在研究一个巨大的项目,可能使用C++中的zlib每天在数千份文档中进行压缩/解压缩。 (我们的实现有zlib 1.2.8)C++ - Zlib - 标题和无标题支持。有多可靠?

我们当前的实现支持带和不带头的压缩文件,但是必须设置一个布尔“useZlibHeader”。

我们的团队想知道是否有100%可靠的方法来确定标题是否存在。

根据该文档:https://www.ietf.org/rfc/rfc1950.txt据说“的FCHECK值必须是使得CMF和FLG,存储在MSB顺序的16位无符号整数观察时(CMF * 256 + FLG),是的倍数31.”

事实上,这是一个很好的检验,但也有我们结束了一个压缩文件没有头的可能性,但其数据作出(CMF * 256 + FLG)将是31

有没有更好的方法来检测标题是否存在?是否有可能严重地检测到标题的存在,并且解压缩不会抛出异常,输出错误的数据?

谢谢

回答

1

作为启发式检查,这将是不可靠的,容易出现漏洞。我可以设想生成一个压缩到zlib头文件。如果标题被视为有效,那么这将产生有效的解压缩流。

在现实中,传输的数据的约束可能会减轻,但它可能仍然是危险的

+0

谢谢你,我们的团队在结束了相同的结论去了。 – James