Hash je řetězec pevné délky (digest) generovaný ze vstupních dat libovolné velikosti pomocí hashovací funkce. Proces je jednosměrný – hash nelze dešifrovat ani obrátit, abyste získali původní data. Proto je „šifrování hash“ nesprávné označení; Hašování není šifrování.
Mezi oblíbené hašovací algoritmy patří:
MD5 (zastaralé pro bezpečnostní účely)
SHA-1 (zastaralé)
SHA-256, SHA-512 (součást rodiny SHA-2)
SHA-3
bcrypt, scrypt, Argon2 (pro bezpečné hašování hesel)
Hashování slouží několika účelům v oblasti kybernetické bezpečnosti a integrity dat. Mezi klíčové důvody pro použití hashování patří:
Integrita dat: Zajišťuje, aby data nebyla změněna (např. kontrolní součty souborů).
Ukládání hesel: Bezpečně ukládá hesla porovnáváním hashů namísto ukládání skutečných hesel.
Digitální podpisy: Hashe se podepisují spíše než velké dokumenty.
Efektivita: Malé hodnoty hash s pevnou velikostí se porovnávají rychleji než velké bloky dat.
Protože hashe jsou deterministické a rychlé, jsou ideální pro ověřovací úlohy.
Použití Hašovací funkce zahrnuje:
Zadávání dat (např. souboru, řetězce nebo hesla).
Zpracování dat pomocí hašovacího algoritmu.
Získání digest, což je řetězec pevné velikosti, který jedinečně reprezentuje vstup.
Pro ochranu heslem:
Zkombinujte heslo se soltí (náhodná data).
Použijte bezpečnou hašovací funkci (např. bcrypt nebo Argon2).
Výsledný hash a sůl bezpečně uložte.
Protože haše nelze vrátit zpět, ověřujete vstup (jako heslo) jeho opětovným hashováním a porovnáním nového hashe s uloženým.
Hashování by se mělo použít, když:
Je třeba ověřit integritu dat (např. kontrola poškození nebo neoprávněné manipulace).
Hesla musí být bezpečně uložena (ne šifrována ani v prostém textu).
Jde o digitální podpisy a certifikáty (hashování zajišťuje pravost dokumentu).
Je nutné rychlé porovnání dat (např. v hašovacích tabulkách nebo mezipamětech).
Hašování není vhodné, když potřebujete později obnovit původní data – k tomu slouží šifrování.