Hash je reťazec s pevnou dĺžkou (digest) vygenerovaný zo vstupných údajov ľubovoľnej veľkosti pomocou hašovacej funkcie. Proces je jednosmerný – hash nemôžete dešifrovať ani obrátiť, aby ste získali pôvodné údaje. Preto je „šifrovanie hashu“ nesprávne pomenovanie; Hašovanie nie je šifrovanie.
Medzi populárne hašovacie algoritmy patria:
MD5 (zastarané pre bezpečnostné účely)
SHA-1 (zastarané)
SHA-256, SHA-512 (súčasť rodiny SHA-2)
SHA-3
bcrypt, scrypt, Argon2 (pre bezpečné hašovanie hesiel)
Hašovanie slúži na niekoľko účelov v oblasti kybernetickej bezpečnosti a integrity údajov. Medzi kľúčové dôvody používania hashovania patria:
Integrita údajov: Zaisťuje, že údaje neboli zmenené (napr. kontrolné súčty súborov).
Ukladanie hesiel: Bezpečne ukladá heslá porovnaním hashov namiesto ukladania skutočných hesiel.
Digitálne podpisy: Hashy sa podpisujú skôr ako veľké dokumenty.
Efektivita: Malé hash hodnoty s pevnou veľkosťou sa porovnávajú rýchlejšie ako veľké bloky údajov.
Pretože hashy sú deterministické a rýchle, sú ideálne na overovacie úlohy.
Používanie Hašovacia funkcia zahŕňa:
Zadávanie údajov (napr. súbor, reťazec alebo heslo).
Spracovanie údajov pomocou hašovacieho algoritmu.
Získanie súhrnu, čo je reťazec s pevnou veľkosťou, ktorý jedinečne predstavuje vstup.
Pre ochranu heslom:
Skombinujte heslo so solťou (náhodné údaje).
Použite bezpečnú hašovaciu funkciu (napr. bcrypt alebo Argon2).
Výsledný haš a soľ bezpečne uložte.
Keďže haše sa nedajú vrátiť späť, overujete vstup (ako heslo) jeho opätovným hašovaním a porovnaním nového hašu s uloženým.
Hašovanie by sa malo použiť, keď:
Je potrebné overiť integritu údajov (napr. kontrola poškodenia alebo manipulácie).
Heslá musia byť bezpečne uložené (nie šifrované ani v obyčajnom texte).
digitálne podpisy a certifikáty (hašovanie zabezpečuje pravosť dokumentu).
Je potrebné rýchle porovnávanie údajov (napr. v hašovacích tabuľkách alebo vyrovnávacích pamätiach).
Hašovanie nie je vhodné, keď potrebujete neskôr obnoviť pôvodné dáta – na to slúži šifrovanie.