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.
„Dobra funkcja skrótu powinna zawsze generować różne skróty dla różnych danych.” – no, nie do końca tak, inaczej nie byłaby funkcją „skrótu”, bo musiałaby mieć w średnim przypadku przynajmniej taką samą długość, jak hashowany ciąg (zasada szufladkowa Dirichleta). Raczej dla dobrej funkcji skrótu nie powinno się dawać łatwo znaleźć kolizji, zwłaszcza na krótkich danych.
witaj, szukam kontaktu z autorem bloga, na stronie nie znalazłam, bardzo mi na tym zależy. Moje gg 6122526 pozdrawiam ;)