Warum vergleicht man nicht das CRC32, das bereits in den ZIP-Dateien steht, zusammen mit der Dateigröße? Das sollte hinreichend genau sein.
Das setzt voraus, dass die Prüfsumme in der Datei nicht manipuliert ist. Aber manipulierte Dateinen scheinen ja eines der möglichen Probleme zu sein.