Jako webový vývojář jste se určitě setkali s pojmem hašování hesel alespoň jednou. Pojďme rychle pochopit, co je hašování hesel a proč ho vůbec potřebujeme.
Co je hašování hesel?
Hašování hesla je proces šifrování hesla uživatele před jeho uložením do databáze. Šifrování je jednosměrné a hesla jednou zahašovaná nelze dešifrovat na jejich původní textovou hodnotu.
Proč potřebujeme hashovat hesla?
Hašování hesel se v dnešní době stalo nesmírně důležité. Předpokládejme scénář, kdy je vaše databáze napadena hackerem a nyní jsou hackerovi vystaveny všechny podrobnosti o vašich uživatelích. Hacker bude mít přístup ke všem vašim datům a heslu uživatele.
Nyní se musíte divit, jaký má smysl šifrování hesel, pokud lze hacknout samotnou databázi. No, odpověď je docela jednoduchá. Průměrný uživatel používá jedno heslo víceméně pro každý web. Pokud tedy hacker získá přístup k heslu uživatele na vašem webu, může přistupovat i k dalším účtům uživatele na jiných webech. Tato hesla se také často prodávají na černém trhu. Mohou být použity k vytvoření různých slovníků hesel atd.
Jak hašovat hesla?
Hašování hesla se obvykle provádí pomocí šifrovacích algoritmů. Bcrypt je jednou z nejpoužívanějších hašovacích funkcí, která může využívat různé algoritmy. Dobrá věc na bcrypt nebo hash obecně je, že už znáte délku hashe. Takže všechna pole hesla ve vaší tabulce mají stejnou délku. Pro ověření hesel při přihlášení je třeba zaslané heslo hashovat a hodnota hash by se měla shodovat s hodnotou v záznamech. Celý tento proces je pomalý a skutečně pomáhá proti útokům hrubou silou.