Tri esenciálne vlastnosti sú odolnosť voči preimage (digest neodhaľuje nič o svojom vstupe), odolnosť voči druhému preimage (pre daný vstup nemôže byť nájdený iný vstup s rovnakým digestom) a odolnosť voči kolízii (dva vstupy s rovnakým digestom nemôžu byť nájdené vôbec). Algoritmy ako MD5 a SHA-1 zlyhali v týchto vlastnostiach a nesmú byť použité tam, kde znamenajú.
Hašovanie sa objavuje všade v bezpečnosti: kontroly integrity a dôkazy manipulácie, digitálne podpisy podpisujúce digesty namiesto celých správ, adresovanie obsahu a — so zámernou extra prácou — ukladanie hesiel. Heslá potrebujú solené, výpočtovo drahé funkcie ako dedikované algoritmy hašovania hesiel; rýchly všeobecný hash je nesprávny nástroj pre túto konkrétnu úlohu.
Kľúčové body
Použitie integrityZodpovedajúci digest potvrdzuje, že obsah sa nezmenil od výpočtu digestu — za predpokladu, že digest bol získaný cez dôveryhodný kanál.
Ukladanie hesielUkladať solené, pomalé hash digesty namiesto rýchlych hashov; soľ poráža predpočítané vyhľadávania a náklad spomaľuje hrubé uhádanie vo veľkom.
Výber algoritmuPoužiť aktuálne schválené rodiny (SHA-2, SHA-3) a zaobchádzať s MD5 a SHA-1 ako s rozbitými pre bezpečnostné účely — zostávajú prijateľné len pre ne-adverziálne checksumy.
Dôležité obmedzenieHash dokazuje len, že dva vstupy zodpovedali pod jednou funkciou v jednom čase. Neposkytuje dôvernosť — digest uhádateľného vstupu je triviálne obnovený skúšaním kandidátov — a hash počítaný cez nedôveryhodný kanál môže byť vymenený spolu s obsahom, za ktorý ručí.