https://images.unsplash.com/photo-1560872236-a2550e4f2d4f?ixlib=rb-4.0.3&q=80&fm=jpg&crop=entropy&cs=tinysrgb

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