Wenn du eine Prüfsumme erstellst, wird mittels eines bestimmten Verfahrens (MD5, SHA-1, SHA-2, ...) aus einer beliebig großen Datenmenge ein immer gleich langer Schlüssel (Prüfsumme) erzeugt. Bei MD5 sind es 32 hexadezimale Ziffern, das heißt 128 Bit Daten. Wenn du jetzt die MD5-Prüfsumme von einer Datei der Größe 1 GB erstellst, werden 8 GBit Daten auf 128 Bit abgebildet. Mit Prüfsummen versucht man nun große Daten auf kleine abzubilden, weil man sie so leichter vergleichen kann. Allerdings kann es natürlich zu Kollisionen kommen, d. h. verschiedene Eingangsdaten können die selbe Prüfsumme ergeben. Das erscheint logisch, da man aus der Prüfsumme, die ja nur 128 Bit lang ist, nie und nimmer die 1 GBit eindeutig rekonstruieren kann. Wäre das der Fall, wäre das ein super Packalgorithmus.
Hier ein Beispiel einer Kollision von MD5:
Collisions in the MD5 cryptographic hash function