哪个值用于验证 Zip 密码?

逆向工程 加密 CRC
2021-07-02 05:04:08

我正在研究可用于检查加密 zip 文件的给定密码是否正确的方法。我看到这个链接:

zip 文件如何检测正确的密码?

在这个问题的答案中,它说CRC用于检查密码是否正确。它还粘贴了来自 Info-zip 的代码片段来证明这一点。

不过仔细研究了Info-zip源码,如下:

    if ((ush)(c | (b<<8)) != (GLOBAL(pInfo->ExtLocHdr) ?
                           ((ush)GLOBAL(lrec.last_mod_dos_datetime) & 0xffff) :
                           (ush)(GLOBAL(lrec.crc32) >> 16)))

我发现当zip项中有ExtLocHdr时,将使用last_mod_dos_datetime的低2个字节而不是CRC来验证密码。但这在https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT中的文件格式规范中根本没有提到

为什么?

0个回答
没有发现任何回复~