SHA-1 i MD5 zostały zaprojektowane tak, aby były tak szybkie i wydajne, jak to tylko możliwe; dobry komputer może w ciągu sekundy zaszyfrować miliony haseł. Ponieważ zahaszowane hasła są zapisywane w bazie danych, ataki typu brute-force są problemem, jeśli atakujący jest w stanie odzyskać informacje z bazy danych. Hakerzy mogą wykonać odwrotne obliczenia równej szybkości, aby uzyskać zaszyfrowane hasła. Aby rozwiązać tego typu problemy, opracowano kilka ulepszonych algorytmów, takich jak bcrypt, PBKDF2 i scrypt, aby spowolnić ataki siłowe [67]. W porównaniu z funkcjami MD5 i SHA-1, MD5 wygeneruje 128 bitów wartości wyjściowej z różną długością komunikatu wejściowego, podczas gdy SHA-1 przetwarza komunikaty na 160 bitów na wyjściu. Oba algorytmy złamały wiadomośćna kawałki 512-bitowych bloków, a każdy kawałek to 16 32-bitowych słów. Proces blokowania wiadomości składa się z czterech etapów zwanych rundami. MD5 wykonuje 64 rundy SHA-1 i wykonuje 80 rund w obliczeniach. Jednak dla SHA-2 proces ma tylko 64 rundy, ale ponieważ rozmiar stanu wewnętrznego wzrasta od 160 do 512, w porównaniu do SHA-1, ma więcej prawdopodobieństw kombinacji; dlatego jest bezpieczniejszy niż funkcje SHA-1 i MD5 przed atakami siłowymi. Liczby te są jeszcze wyższe dla SHA-512/384, rozmiar stanu wewnętrznego jest dwukrotnie większy niż SHA-256/224, a rozmiar bloku jest również dwukrotnie większy, rundy procesu to 80 kroków [67]. Funkcja SHA-1 wykorzystuje sekwencję funkcji logicznych od f0 do f79; każda funkcja ft działa na trzech 32-bitowych słowach: x, y i z, a następnie generuje 32-bitowe słowo jako wyjście. Każda funkcja zawiera również funkcje Ch (x, y, z) i Maj (x, y, z). Operacja wyłącznego LUB (⊕) w tych funkcjach może zostać zastąpiona przez bitową operację LUB (∨) i może dawać identyczne wyniki. Funkcja SHA-1 ft (x, y, z) jest zdefiniowana następująco:
Równanie 1 to funkcja SHA-1 ft (x, y, z) [67]. Funkcje rodziny SHA-2 wykorzystują znane. Są one podzielone na sekcje, SHA-224/SHA-256 i SHA-384/512. SHA-224 i 256 używają sześciu funkcji logicznych, a każda funkcja obsługuje słowa 32-bitowe, a wyjściem każdej funkcji jest nowe słowo 32-bitowe.
Równanie 2 jest oficjalną funkcją SHA-224 i SHA-256. SHA-384 i SHA-512 również używają sześciu funkcji logicznych, ale każda funkcja obsługuje słowa 64-bitowe; wynikiem wyjściowym jest nowe słowo 64-bitowe.
Równanie 3 to oficjalne funkcje SHA-384 i SHA-512