Hashování je proces, při kterém vložíte na vstup data (např. slovo „Ahoj“ nebo celé video) a hashovací algoritmus (funkce) vyplivne unikátní řetězec znaků (např. ''a3f5b…'). Hashování je jednosměrná operace – z výsledného hashe nelze zpětně získat původní data.
Aby byla hashovací funkce užitečná v informatice a bezpečnosti, musí splňovat tato pravidla:
Služby by nikdy neměly ukládat vaše hesla v čitelném textu. Místo toho uloží pouze hash vašeho hesla.
Stahujete-li velký soubor, autor často uvádí jeho hash (např. MD5 nebo SHA-256). Po stažení můžete soubor zahashovat sami. Pokud se váš hash shoduje s tím od autora, máte jistotu, že se soubor cestou nepoškodil a nikdo do něj nevložil virus.
Hashování je základem pro digitální podpisy a technologii kryptoměn. V Bitcoinu se například hashuje celý blok transakcí, čímž se nezaměnitelně propojuje s blokem předchozím.
| Algoritmus | Stav | Použití |
|---|---|---|
| MD5 | Zastaralý | Již není bezpečný, používá se jen pro rychlou kontrolu integrity (ne pro hesla). |
| SHA-1 | Zastaralý | Podobně jako MD5, již byl matematicky prolomen. |
| SHA-256 | Bezpečný | Standard v kryptografii, těžba Bitcoinu, certifikáty webů. |
| bcrypt / Argon2 | Excelentní | Speciálně navrženy pro ukládání hesel (jsou záměrně pomalé, aby bránily útokům hrubou silou). |
Mnoho lidí tyto pojmy plete. Hlavní rozdíl je v účelu:
V souvislosti s hashováním hesel se používá tzv. sůl. Je to náhodný řetězec znaků, který se přidá k heslu předtím, než se zahashuje. Tím se zajistí, že i když mají dva uživatelé stejné heslo „12345“, jejich výsledné hashe v databázi budou vypadat úplně jinak. To chrání databázi před útoky pomocí tzv. Duhových tabulek (Rainbow Tables).
Související pojmy: Digitální podpis, Šifrování, RSA, AES, Blockchain, MD5, SHA-256, Sůl (Salt).