为什么PKWARE网站上的ZIP APPNOTE没有在其规范中提到正确的密码检查机制?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么PKWARE网站上的ZIP APPNOTE没有在其规范中提到正确的密码检查机制?相关的知识,希望对你有一定的参考价值。
我一直在阅读password check mechanism
中的PKWARE遗产APPNOTEs。在6.1.6节解密加密标题的末尾,该段落声明如下:
在解密头之后,缓冲区中的最后1或2个字节应该是被解密文件的CRC的高位字/字节,以英特尔低字节/高字节顺序存储。 2.0之前的PKZIP版本使用2字节CRC校验;在2.0之后的版本上使用1字节CRC校验。这可用于测试提供的密码是否正确
上面的段落只提到了CRC
的1或2字节检查,但没有提到它也可以检查last mod file time
而不是CRC
,基于bit 3
的general purpose bit flag
。
我使用默认的zip 3.0
在linux机器上使用Traditional PKWARE Encryption
加密了一个文件,经过以下的解密过程后,我意识到应该用last mod file time
而不是CRC
检查最后一个或两个字节,以检查密码是否正确。
在网上搜索了一段时间之后,我才发现这个版本的APPNOTE实际上描述了CRC
或last mod file time
的检查,取决于bit 3
的general purpose bit flag
。
linux zip 3.0
不遵循PKWARE APPNOTE标准或PKWARE没有提到上述信息吗?
linux zip 3.0是不符合PKWARE APPNOTE标准还是PKWARE没有提到上述信息?
两者都是真的。 PKWARE并不觉得有必要在其标准中添加第三方更改。但是,感谢您找到有关此时间戳字节的任何文档。通过查看Info-Zip的源代码,我们已经通过时间戳字节替换了CRC字节(顺便说一句,这是一个好主意)之前我对自己的实现感到头疼。
以上是关于为什么PKWARE网站上的ZIP APPNOTE没有在其规范中提到正确的密码检查机制?的主要内容,如果未能解决你的问题,请参考以下文章