Regina Schaukrug: Eindeutige Prüfziffer aus einem String bilden

Beitrag lesen

dafür aber auch anfälliger für bewusst herbeigeführte Kollisionen.

Naja. crc() sollte man nicht für große Dateien nehmen. Es mag schnell sein, aber bei einem Wertebereich von 16^8 (00000000 - ffffffff) oder eben 4.294.967.296 (crc32) geht das mit den Kollisionen zu schnell. Aus diesem Grund wird es praktisch nur genutzt, um die Übertagung von kleinen Datenmengen oder Blöcken abzusichern.

crc32 ${DATEI};

Kandidaten:

  1. SHA1

Das schnelle SHA1 hat 40 hexadezimale Stellen. Damit findet die erste Kollision zwingend erst beim 1461501637330902918203684832716283019655932542976 + 1 Dokument statt.

openssl sha1 < ${DATEI} | sed "s/.*= //";
  1. MD5

MD5 hat 32 hexadezimale Stellen. Damit findet die erste Kollision zwingend erst beim 340282366920938463463374607431768211456 + 1 Dokument statt.

openssl md5 < ${DATEI} | sed "s/.*= //";