hashes zijn gewoon "totalen" ...
een voorbeeldje om het simpel uit te leggen:
men neemt een tekstbestand van x aantal karakters.
dan worden alle ASCII waardes opgeteld, vermenigvuldigd met elkaar en daar dan een vierkantswortel van, het getal dat er dan uitkomt is vrij uniek en moeilijk te reconstueren met een ander tekstbestand, want 1 letterke verschil geeft al een totaal andere waarde.
nu maakt het niet uit hoe groot een bestand is om die waarde te berekenen, enkel hetgeen erin staat.
een ander geval is CRC. dit is een soort van MD5 hash, maar de opbouw is anders; er worden geen wortels getrokken enzo, maar enkel berekend wat de totalen zijn. Als er dan een karakter uit uw tekstbestand verdwijnt, kan dit worden herberekend door alle crc waardes die aanwezig zijn af te trekken van de 'crc-hash', en dan de overschot, is tjah... hetgeen je mankeerde.
beide zijn wiskundige wonders, alleen zijn de doelen anders.