Czym jest funkcja hashująca (skrótu)

Funkcja hashująca, zwana także funkcją skrótu generuje unikalny skrót (ciąg znaków) dla konkretnych danych. Danymi mogą być ciągi znaków, zdjęcia, archiwa zip czy obraz płyty kompaktowej. Istotne jest, że wynik działania funkcji skrótu jest taki sam nie zmienionych danych. Dlatego też funkcje hashujące wykorzystuje się między innymi do sprawdzenia, czy plik ściągnął się poprawnie.

Kilka przykładów (wykorzystałem popularna w internecie funkcje MD5):
Słowo Techniczny.net hashowane funkcją MD5:0ca8de42c8475c5b69f915abc503e716.
Słowo techniczny.net hashowane funkcją MD5: 5ce35e4defe086a0d0126521f0a9ed22.
Obraz Ubuntu 9.04 hashowany funkcją MD5: 66fa77789c7b8ff63130e5d5a272d67b.

Jak widać niezależnie od długości wiadomości źródłowej (kilka znaków dla pierwszych dwóch przypadków oraz kilkuset megabajtów dla ostatniego) wygenerowany skrót ma zawsze stałą długość – 32 znaki. Ponadto, niewielka, zmiana dużej litery na małą w przykładzie drugim spowodowała istotną zmianę skrótu.

Dobra funkcja skrótu powinna zawsze generować różne skróty dla różnych danych. Niestety funkcja MD5 nie spełnia tego warunku. Z tego powodu sugeruje się przejście na algorytmy z rodziny SHA-2.