SHA-256 vs SHA-512: ce funcție de hash să alegi?
SHA-256 și SHA-512 aparțin amândouă familiei SHA-2, concepută de NSA și standardizată de NIST. Produc o amprentă de dimensiune fixă pornind de la orice dată și sunt considerate astăzi sigure. Diferența ține de dimensiunea amprentei, de performanța în funcție de arhitectură și de câteva detalii de securitate. Iată pe care s-o alegi și de ce.
Familia SHA-2
SHA-2 reunește mai multe variante (SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256) care împărtășesc aceeași structură dar diferă prin dimensiunea cuvintelor și a amprentei. Cifra indică dimensiunea amprentei în biți: SHA-256 produce 256 de biți (64 de caractere hexazecimale), SHA-512 produce 512 (128 de caractere).
Poți calcula aceste amprente cu generatorul de hash, sau recunoaște un algoritm pornind de la o amprentă cu identificatorul de hash. A nu se confunda cu MD5, obsolet pentru securitate (vezi comparativul nostru MD5 vs SHA-256).
SHA-256
SHA-256 lucrează pe cuvinte de 32 de biți și produce o amprentă de 256 de biți. Este funcția de hash cea mai răspândită din lume: certificate TLS, semnături Bitcoin, verificarea integrității fișierelor, git. Amprenta sa mai scurtă o face practică de stocat, afișat și transmis.
- Amprentă: 256 de biți, 64 de caractere hexazecimale
- Cuvinte: 32 de biți, optim pe platformele de 32 de biți și pe sistemele embedded
- Adoptare: cea mai largă, suport universal
SHA-512
SHA-512 lucrează pe cuvinte de 64 de biți și produce o amprentă de 512 biți. Contraintuitiv, pe un procesor de 64 de biți modern, este adesea mai rapidă decât SHA-256 pentru volume mari, deoarece procesează mai multe date pe rundă. Amprenta sa mai lungă oferă de asemenea o marjă de securitate superioară.
- Amprentă: 512 biți, 128 de caractere hexazecimale
- Cuvinte: 64 de biți, optim pe arhitecturile de 64 de biți
- Rezistență nativă: SHA-512 nu este vulnerabilă la atacul prin extensie de lungime atunci când se folosesc variantele sale trunchiate (SHA-512/256)
Tabel comparativ
| Criteriu | SHA-256 | SHA-512 |
|---|---|---|
| Dimensiunea amprentei | 256 biți (64 hex) | 512 biți (128 hex) |
| Dimensiunea cuvintelor | 32 biți | 64 biți |
| Viteză pe CPU 64 biți | Bună | Adesea superioară |
| Viteză pe 32 biți / embedded | Superioară | Mai lentă |
| Marjă de securitate | Foarte ridicată | Și mai ridicată |
| Extensie de lungime | Vulnerabilă | Vulnerabilă (cu excepția variantelor trunchiate) |
| Adoptare | Universală | Largă |
Performanță
Performanța depinde de arhitectură. Pe un server sau un laptop de 64 de biți, SHA-512 poate depăși SHA-256 cu 20 până la 50 % pe fișiere mari, deoarece procesează blocuri mai mari pe iterație. Pe un microcontroler de 32 de biți sau într-un mediu restrâns, SHA-256 reia avantajul.
În practică, pentru intrări mici (o parolă, un identificator), diferența este neglijabilă. Devine măsurabilă doar pe volume importante sau debituri ridicate.
Când să alegi una sau alta
Alege SHA-256 când
- Vizezi compatibilitatea maximă și un format compact
- Țintești sisteme embedded, IoT sau platforme de 32 de biți
- Verifici integritatea fișierelor sau semnezi certificate
- O amprentă scurtă facilitează afișarea și stocarea
Alege SHA-512 când
- Faci hash pe volume mari pe servere de 64 de biți
- Vrei marja de securitate cea mai largă posibilă
- Folosești SHA-512/256 pentru a rezista la extensia de lungime păstrând 256 de biți
Important: niciuna dintre cele două nu este adaptată pentru hash-ul de parole. Pentru asta, folosește bcrypt sau Argon2, concepute pentru a fi lente și sărate.
Recomandare
Pentru o utilizare generală, SHA-256 este alegerea implicită: universal suportat, compact, amplu sigur. Optează pentru SHA-512 dacă faci hash pe volume mari pe hardware de 64 de biți sau dacă vrei o marjă de securitate suplimentară. Iar pentru stocarea parolelor, orientează-te spre o funcție dedicată precum Argon2id, niciodată spre SHA-2 singur.
Întrebări frecvente
SHA-512 este mai sigur decât SHA-256?
SHA-512 oferă o marjă de securitate teoretică superioară datorită amprentei sale mai lungi, dar SHA-256 este deja amplu în afara razei de acțiune a atacurilor actuale. Pentru aproape toate utilizările, ambele sunt considerate sigure.
De ce poate fi SHA-512 mai rapid decât SHA-256?
Pentru că manipulează cuvinte de 64 de biți și procesează blocuri mai mari pe rundă. Pe un procesor de 64 de biți nativ, asta compensează costul suplimentar și îl face adesea mai rapid pe volume mari. Pe 32 de biți, este invers.
Pot face hash de parole cu SHA-256 sau SHA-512?
Nu, ar fi o greșeală. Aceste funcții sunt rapide, deci ușor de atacat prin forță brută. Folosește bcrypt sau Argon2id, care sunt intenționat lente și integrează o sare.
Ce este SHA-512/256?
Este SHA-512 a cărui amprentă este trunchiată la 256 de biți, cu valori de inițializare diferite. Se obține o amprentă de 256 de biți, viteza SHA-512 pe 64 de biți și o rezistență nativă la atacul prin extensie de lungime.