Rilevare la corruzione non è del tutto corretto. Per accertare l'integrità del software sarebbe un uso più corretto. Normalmente un software non è distribuito da un singolo server. Lo stesso software può essere distribuito da molti server. Pertanto, quando scarichi un determinato software, il server più vicino alla tua destinazione viene scelto come fonte di download per aumentare la velocità di download. Tuttavia, questi server "non ufficiali" (di terze parti) non sono sempre affidabili. Potrebbero / possono includere trojan / virus / adware / backdoor nel programma, il che non va bene .
Pertanto, per garantire che il software scaricato sia esattamente uguale a quello del software "ufficiale" rilasciato dall'organizzazione interessata, viene utilizzato il checksum. Gli algoritmi utilizzati per la generazione di checksum sono tali che anche un leggero cambiamento nel programma si traduce in un checksum completamente diverso.
Esempio tratto da Practical Unix e Internet Security
MD5 (ci sono $ 1500 nella casella blu.) = 05f8cfc03f4e58cbee731aa4a14b3f03
MD5 (ci sono $ 1100 nella casella blu.) = D6dee11aae89661a45eb9d21e30d34cb
I messaggi, che differiscono per un solo carattere (e, all'interno di quel carattere, per un solo bit binario), hanno digest dei messaggi completamente diversi.
Se il file scaricato ha lo stesso checksum del checksum fornito sul sito Web "ufficiale", si può presumere che il software non sia modificato.
Nota a margine: in teoria, due file diversi POSSONO avere lo stesso valore di hash. Affinché l'algoritmo Hash / checksum sia considerato sicuro, dovrebbe essere molto costoso dal punto di vista computazionale trovare un altro file che produca lo stesso checksum.