Otwarty tekst
przechowywane: user ID i hasło
Hashowanie (szyfrowanie - algorytm jednokierunkowy)
przechowywane: user ID i hasło zaszyfrowane + metoda szyfrowania
rozpozna znane hashe (ze znanych słów) może odczytać hasła poprzez wygenerowanie hashy ze słów tablicy słownikowych offline
może sprawdzić, czy użytkownik ma te same hasła porównując hashe.
Dodanie soli do hasła
przechowywane: user ID i hasło zaszyfrowane + metoda szyfrowania oraz sól
przechowywane hasło (zaszyfrowanie + sól).
zawsze inna “sól”dla każdego użytkownika - złamanie hasła jednego użytkownika nie daje hasła innego użytkownika
Dodanie pieprzu do hasła
przechowywane: user ID i hasło zaszyfrowane + metoda szyfrowania oraz sól +przechowywanie pieprzu w aplikacji w innej lokalizacji
nie może próbować offline