说到这个:http://www.win-rar.com/index.php?id=24&kb_article_id=162如何计算WinRAR文件头的CRC?
我能够做计算归档头(MAIN_HEAD)的正确CRC:
$crc = crc32(mb_substr($data, $blockOffset + 2, 11, '8bit'));
$crc = dechex($crc);
$crc = substr($crc, -4, 2) . substr($crc, -2, 2);
$crc = hexdec($crc);
第一行写着“CRC领域的HEAD_TYPE到RESERVED2“作为文件中的状态。正如我所指出的那样,它对档案头部来说工作正常。
当我尝试计算一个文件头的CRC时,它总是会因不明原因吐出错误的CRC。我按照文档所述 - “从HEAD_TYPE到FILEATTR的字段的CRC”,但它根本不起作用。如果文档不正确,我也尝试了不同的读长度变化,实际上它可能是从HEAD_TYPE到FILE_NAME的。一切都没有成功。
任何人都可以给我一个提示吗?我也检查了unrar源代码,但它并没有让我变得更聪明,可能是因为我根本不知道C语言......
谢谢!将尽快尝试。 – nginxguy
如果其他人感兴趣,可以在这里找到一些读取RAR文件的PHP代码: http://www.newznab.com/download.html – Gfy