說到這個: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