Słownik Hash / Hashing (Funkcja skrótu)

Hash / Hashing (Funkcja skrótu)

Hashowanie to przekształcenie danych dowolnej długości w skrót o stałym rozmiarze (hash). Dobra kryptograficzna funkcja skrótu jest deterministyczna, odporna na znalezienie drugiej wiadomości o tym samym skrócie (w praktyce) i jednokierunkowa: z hasha nie odtwarzasz wejścia inaczej niż przez zgadywanie.

Na blackweb.pl ważne rozróżnienie: hash to nie szyfrowanie. Szyfrowanie ma klucz i da się odwrócić. Hash hasła w bazie ma być trudny do odwrócenia nawet dla admina. Potocznie „zahashowane hasło” bywa mylone z „bezpieczne hasło”. Bezpieczeństwo zależy od algorytmu, soli i entropii secretu.

Do czego się używa

Integralność: pobierasz obraz ISO, porównujesz SHA-256 z publikacją na stronie. Inny hash = inny plik (podmiana, uszkodzenie). Podpisy cyfrowe liczą się na hashach dokumentów, nie na surowych gigabajtach. Łańcuchy bloków i deduplikacja też stoją na skrótach, ale to osobne historie.

Hasła: serwer trzyma hash (z solą, idealnie przez KDF w stylu argon2/bcrypt), przy logowaniu liczy skrót podanego hasła i porównuje. Wyciek tabeli nie powinien od razu oddawać plaintextu. Przy MD5 bez soli i hasłach ze słownika oddaje. Stąd rainbow table i offline brute force.

Właściwości, które się liczą

Efekt lawiny: drobna zmiana wejścia zmienia cały skrót. Kolizje: dwa różne wejścia, ten sam hash. Przy złamanych funkcjach (MD5, słabe użycia SHA1 w konkretnych kontekstach) kolizje przestają być teorią. Dlatego dobór algorytmu ma datę ważności. „Kiedyś SHA1 było OK” nie jest argumentem w 2026.

Przy hasłach liczy się też koszt: celowo wolna funkcja spowalnia GPU. Szybki SHA-256 sam w sobie jest zły jako KDF haseł, bo napastnik liczy miliardy prób tanio. Stąd osobna rodzina algorytmów do password hashing.

Hash a threat intel

W reportach o malware hash pliku (SHA256) identyfikuje próbkę. W dumpach kont hash hasła identyfikuje klasę problemu. Po SQLi albo innym wycieku pytanie „jaki hash?” decyduje, czy czeka Cię stuffing w tydzień, czy droższy cracking. Patrz wycieki danych.

Dla użytkownika: nie musisz liczyć bcryptów ręcznie. Musisz nie reuse’ować haseł i nie wierzyć, że „serwis hashuje” = „możesz spać”.

Checksum pliku i KDF hasła to ten sam rodzaj obiektu matematycznego w popularnym języku, ale inne wymagania inżynierskie. Plik ma być szybki do weryfikacji. Hasło ma być drogie do zgadywania. Mylenie tych dwóch zastosowań prowadzi do złych decyzji w kodzie i do złudnego spokoju po breechu.

Czego tu nie ma

Nie ma tabeli „wybierz algorytm na egzamin” ani instrukcji crackowania. Jest mechanizm i typowe nieporozumienia (hash ≠ szyfr), bo bez tego reszta słownika o hasłach się sypie.

Zobacz też

← Słownik · Archiwum