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žetka | 256 bitova (64 hex) | 512 bitova (128 hex) |
| Veličina riječi | 32 bita | 64 bita |
| Brzina na 64-bitnom CPU-u | Dobra | Često bolja |
| Brzina na 32-bitnom / ugradbenom | Bolja | Sporija |
| Sigurnosna rezerva | Vrlo visoka | Još veća |
| Produljenje duljine | Ranjiv | Ranjiv (osim skraćenih varijanti) |
| Prihvaćenost | Univerzalna | Š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.