Suma kontrolna jest liczbą, na podstawie której można stwierdzić, czy w danym ciągu wkradł się błąd.
Przykładowo, sumą kontrolną jest ostatnia liczba numeru PESEL. Znając odpowiedni algorytm, odpowiednio dodając i mnożąc, z poprzedzających liczb musi wyjść ta ostatnia - jeśli nie - to cały numer jest zły. W niektórych systemach, ten ostatni znak pozwala np. stwierdzić gdzie wystąpił błąd i go skorygować za pomocą bitu parzystości.
Natomiast hasła w bazie danych, to są hasze. Haszowanie w tym przypadku polega na tym, ze przepuszczając tekst przez specjalny algorytm dostajesz losowy ciąg znaków (ale zawsze ten sam dla danego ciągu), o stałej długości, teoretycznie niepowtarzalny. Mówię teoretycznie, bo w samym haszowaniu istnieje coś takiego jak kolizja, gdy z dwóch różnych ciągów generuje się ten sam hasz. W przypadku MD5 jest to praktycznie oczywiste, bowiem taki ciąg ma 32 znaki, na każdej pozycji 16 kombinacji, tymczasem używajac samego ASCII można w 32 znakowym słowie podać 255 kombinacji na każdą pozycję, więc od razu wiadomo, że któreś słowa mają ten sam ciąg. Oczywiście takich zahaszowanych rozwiązań jest od groma i ciut ciut, jednak te najpopularniejsze znajdziesz nawet w googlach, z pomocą przychodzą też tablice tęczowe. Dlatego też obecnie przechodzi się na SHA, które ma dłuższy ciąg i trudniej o kolizję (ale pewnie też kiedyś znajdą na nie sposób, o ile juz tego nie zrobili).
Podsumowując - suma kontrolna jest czymś co pozwala stwierdzić, czy w naszych danych nie ma przekłamania (np. czy w trakcie transmisji danych coś się nie zgubiło, lub czy pobrany z sieci plik faktycznie jest tym o którym myślimy, czy może tylko tak samo się nazywa), natomiast haszowanie służy do otrzymania klucza którego nie da się odszyfrować i który jest bliski unikalnemu.