We współczesnych systemach kryptograficznych hasła nie powinny być nigdy stosowane bezpośrednio jako klucze kryptograficzne ze względu na stosunkowo niską entropię informacyjną haseł, a zatem możliwość skutecznego zaatakowania samego hasła o złożoności (entropii) np. rzędu 40 zamiast atakowania pełnego klucza kryptograficznego (np. o długości 128 bitów i takiej samej entropii).
Atak słownikowy Tęczowe tablice (ang. )
Dla ograniczenia tego typu ataków hasła powinny zawsze podlegać dodatkowemu przetwarzaniu przed użyciem ich na wejściu do algorytmu kryptograficznego. Pierwsze tego typu przekształcenia zdefiniowano w 1998 roku w standardzie OpenPGP pod nazwą S2K (string to key).
Współczesne funkcje stosowane do tego celu określa się nazwą PBKDF (Password Based Key Derivation Function) i zalecaną ich konstrukcję definiuje standard PKCS#5. Funkcje PBKDF stosują dwa podstawowe zabiegi w celu zwiększenia złożoności ataku na hasło: wielokrotne stosowanie kryptograficznych funkcji skrótu, takich jak SHA-1 (liczba iteracji od kilku do kilkudziesięciu tysięcy), losowa wartość (ang.