SHA-256 vs SHA-512: koju hash funkciju odabrati?

SHA-256 i SHA-512 obje pripadaju obitelji SHA-2, koju je osmislio NSA, a standardizirao NIST. Proizvode sažetak fiksne veličine iz bilo kojih podataka i danas se smatraju sigurnima. Razlika je u veličini sažetka, performansama ovisno o arhitekturi i nekoliko sigurnosnih detalja. Evo koju odabrati i zašto.

Obitelj SHA-2

SHA-2 obuhvaća nekoliko varijanti (SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256) koje dijele istu strukturu, ali se razlikuju po veličini riječi i sažetka. Broj označava veličinu sažetka u bitovima: SHA-256 proizvodi 256 bitova (64 heksadecimalna znaka), SHA-512 proizvodi 512 bitova (128 znakova).

Te sažetke možete izračunati našim generatorom hasha ili prepoznati algoritam iz sažetka pomoću identifikatora hasha. Ne brkati s MD5, zastarjelim za sigurnost (vidi našu usporedbu MD5 vs SHA-256).

SHA-256

SHA-256 radi s riječima od 32 bita i proizvodi sažetak od 256 bitova. To je najraširenija hash funkcija na svijetu: TLS certifikati, Bitcoin potpisi, provjera integriteta datoteka, git. Njegov kraći sažetak čini ga praktičnim za pohranu, prikaz i prijenos.

  • Sažetak: 256 bitova, 64 heksadecimalna znaka
  • Riječi: 32 bita, optimalno na 32-bitnim platformama i ugradbenim sustavima
  • Prihvaćenost: najšira, univerzalna podrška

SHA-512

SHA-512 radi s riječima od 64 bita i proizvodi sažetak od 512 bitova. Suprotno intuiciji, na modernom 64-bitnom procesoru često je brži od SHA-256 za velike količine, jer obrađuje više podataka po krugu. Njegov duži sažetak također nudi veću sigurnosnu rezervu.

  • Sažetak: 512 bitova, 128 heksadecimalnih znakova
  • Riječi: 64 bita, optimalno na 64-bitnim arhitekturama
  • Izvorna otpornost: SHA-512 nije ranjiv na napad produljenjem duljine kada se koriste njegove skraćene varijante (SHA-512/256)

Usporedna tablica

Kriterij SHA-256 SHA-512
Veličina sažetka256 bitova (64 hex)512 bitova (128 hex)
Veličina riječi32 bita64 bita
Brzina na 64-bitnom CPU-uDobraČesto bolja
Brzina na 32-bitnom / ugradbenomBoljaSporija
Sigurnosna rezervaVrlo visokaJoš veća
Produljenje duljineRanjivRanjiv (osim skraćenih varijanti)
PrihvaćenostUniverzalnaŠiroka

Performanse

Performanse ovise o arhitekturi. Na 64-bitnom poslužitelju ili prijenosnom računalu SHA-512 može nadmašiti SHA-256 za 20 do 50 % na velikim datotekama, jer obrađuje veće blokove po iteraciji. Na 32-bitnom mikrokontroleru ili ograničenom okruženju SHA-256 ponovno preuzima prednost.

U praksi, za male ulaze (lozinka, identifikator), razlika je zanemariva. Postaje mjerljiva tek pri velikim količinama ili visokim protocima.

Kada odabrati jednu ili drugu

Odaberite SHA-256 kada

  • Ciljate maksimalnu kompatibilnost i kompaktan format
  • Ciljate ugradbene sustave, IoT ili 32-bitne platforme
  • Provjeravate integritet datoteka ili potpisujete certifikate
  • Kratak sažetak olakšava prikaz i pohranu

Odaberite SHA-512 kada

  • Hashirate velike količine na 64-bitnim poslužiteljima
  • Želite najširu moguću sigurnosnu rezervu
  • Koristite SHA-512/256 za otpornost na produljenje duljine uz zadržavanje 256 bitova

Važno: nijedna od njih nije prikladna za hashiranje lozinki. Za to koristite bcrypt ili Argon2, osmišljene da budu spore i sa solju.

Preporuka

Za opću uporabu, SHA-256 je zadani izbor: univerzalno podržan, kompaktan, sasvim siguran. Odaberite SHA-512 ako hashirate velike količine na 64-bitnom hardveru ili ako želite dodatnu sigurnosnu rezervu. A za pohranu lozinki okrenite se namjenskoj funkciji poput Argon2id, nikada samo SHA-2.

Često postavljana pitanja

Je li SHA-512 sigurniji od SHA-256?

SHA-512 nudi veću teorijsku sigurnosnu rezervu zahvaljujući dužem sažetku, ali SHA-256 je već uvelike izvan dosega trenutnih napada. Za gotovo sve uporabe, obje se smatraju sigurnima.

Zašto SHA-512 može biti brži od SHA-256?

Jer manipulira riječima od 64 bita i obrađuje veće blokove po krugu. Na izvorno 64-bitnom procesoru to nadoknađuje dodatni trošak i često ga čini bržim na velikim količinama. Na 32-bitnom je obrnuto.

Mogu li hashirati lozinke sa SHA-256 ili SHA-512?

Ne, to bi bila pogreška. Te su funkcije brze, stoga lako napadive grubom silom. Koristite bcrypt ili Argon2id, koji su namjerno spori i uključuju sol.

Što je SHA-512/256?

To je SHA-512 čiji je sažetak skraćen na 256 bitova, s različitim inicijalizacijskim vrijednostima. Dobivate sažetak od 256 bitova, brzinu SHA-512 na 64 bita i izvornu otpornost na napad produljenjem duljine.