Die Berechnung der CRC32 Prüfsumme einer Datei

Ich versuche, berechnen CRC32 Prüfsumme einer Datei für die Verwendung mit diesem Modul Mod_zip, ich habe versucht, dies zu tun mit PHP aber leider nicht, auch wenn Sie überschritten wird, nicht effizient sein, für größere Dateien.

Ich habe auch versucht linux cksum Befehl, aber es berechnet die CRC-Prüfsumme der Datei.

Fand ich, dass perl auf linux kann verwendet werden, um zu berechnen CRC32 einer Datei, falls dies möglich ist, könnte ich mit shell_exec zu importieren, die Ausgabe auf meinem PHP Anwendung, wie kann ich dies tun?

CRC32 ist nicht ein einziger, einzigartiger Algorithmus. en.wikipedia.org/wiki/CRC32#Commonly_used_and_standardized_CRCs, Die Seite listet 12 verschiedene Varianten, und das ist vor Berücksichtigung der Vorbehandlung und postconditioning.
Es gibt nur eine CRC-32 aufgelistet auf dieser Seite.
Es gibt 4 typische CRC-32s aufgeführt (mit verschiedenen suffix-Buchstaben, ja), und für jede der vier CRC-32s gibt es drei Varianten des Polynoms aufgeführt (vorwärts, rückwärts und Umgekehrt, gegenseitige). Wenn du über diejenigen, die mit big-endian/little-endian, 0s vs 1s Voraussetzung, invertiert/nicht-invertiert post-Zustand, es ist eine Schweinerei. Digest::CRC ( search.cpan.org/~olimaul/Digest-CRC-0.18/lib/Digest/CRC.pm ) führt alle diese, glaube ich, aber die Dokumentation fehlt.
Beachten Sie, dass, wenn Ihr Ziel ist "eine Prüfsumme übereinstimmt ZIP" (oder einige andere spezifische Programm), das ist ein bisschen mehr begrenzt. Ich glaube, die crc32 Methode Digest::CRC wird das tun, denn das ist die häufigste CRC-32 Leute Fragen. (Ich habe gerade verbrannt wurde, wie ich gesehen habe waaaaay zu viele CRC-Implementierungen in der embedded-Welt.)
4 gemeinsame CRC-32s..." Die OP angegeben CRC32 und nicht einer seiner Varianten. Digest::CRC CRC-32, wie Sie erwähnt haben. String::CRC32 auch nicht, CRC-32.

InformationsquelleAutor Naveen Gamage | 2013-12-11

Schreibe einen Kommentar