Co je to hash a k čemu se používá?
Hashovací funkce je matematický algoritmus, který převede jakkoliv dlouhý text (nebo soubor) na fixně dlouhý řetězec znaků (hash). Je to v podstatě unikátní "otisk prstu" daných dat. Na rozdíl od šifrování (které funguje obousměrně) je hashování proces jednosměrný – z výsledného hashe by nemělo být možné matematicky odvodit původní text.
Hlavní vlastnosti hashů
- Unikátnost: Změna byť jen jediného písmene ve vstupním textu naprosto změní celý výsledný hash.
- Fixní délka: Ať už zahashujete jediné slovo nebo celou knihu, výsledný hash MD5 bude mít vždy 32 znaků a SHA-256 přesně 64 znaků.
- Rychlost: Výpočet hashe probíhá ve zlomcích sekundy.
Srovnání formátů (MD5 vs SHA-256)
V minulosti se velmi často používal formát MD5 (např. pro ukládání hesel v databázích nebo jako unikátní identifikátor pro gravatar obrázky). Dnes je ale MD5 považován za kryptograficky prolomený a nebezpečný, protože je náchylný k tzv. kolizím (dvě různá data mohou vygenerovat stejný hash) a je příliš rychlý na prolomení hrubou silou (brute-force).
Pro bezpečné aplikace, ukládání hesel nebo elektronické podpisy (např. webhooky, platební brány) se dnes jako moderní standard vyžaduje minimálně SHA-256 (rodina SHA-2) nebo silnější SHA-512.