Każdy system musi udostępniać procesy uwierzytelniania i autoryzacji. Sprawdzenie wiarygodności dokumentów, plików oraz innych obiektów nazywa się procesem uwierzytelnienia. Mechanizm autoryzacji sprawdza jakie uprawnienia posiada obiekt do innych obiektów w systemie .
Dwa te procesy można zauważyć codziennie praktycznie na każdym kroku.
Hasła dostępowe to ciągi znaków, które są zazwyczaj zapamiętywane przez użytkowników. Są najprostsze w drożeniu, jednak posiadają bardzo dużo wad.
Podstawowa słabość to możliwość stosowania wydajnych ataków siłowych lub słownikowych . Gdy hasło jest krótkie lub mało skomplikowane, można wiele razy próbować «zgadnąć» odpowiedni ciąg znaków w procesie uwierzytelniania. Automatyzacja tego procesu może być czasem skomplikowana , jednak nie można lekceważyć tego typu ataków.
Hasła dostępowe powinny być podane na wejście kryptograficznych bezpiecznych funkcji skrótu. Wynikiem ich stosowania, jest zapisywanie w bazie hasła w sposób niejawny, za pomocą «hashu» – który nie może zostać zamieniony w podane wcześniej hasło . Niezastosowanie się do czynności «hashowania» haseł może mieć tragiczne skutki. Hasła użytkowników mogą być przeglądane przez administracje, nielegalnie używane lub przekazywane dalej. Brak «hashowania» powiększa szkody wynikłe z przełamania zabezpieczeń. Agresor pobierając bazy danych ma dostęp bezpośrednio do tych danych i może je wykorzystywać do dalszej penetracji systemu.
Warto zaznaczyć, że «hashowanie» nie rozwiązuje wszystkich problemów. Bezpieczne funkcje hashujące to stosunkowo wąska grupa funkcji skrótu kryptograficznego. Algorytmy większości z nich są dobrze znane i istnieje wiele narzędzi, które potrafią łamać takie «bezpieczne» hasła.