SHA-256 vs. SHA-512: jakou hashovací funkci zvolit?
SHA-256 i SHA-512 patří obě do rodiny SHA-2, navržené NSA a standardizované NIST. Produkují otisk pevné velikosti z libovolných dat a dnes jsou považovány za bezpečné. Rozdíl spočívá ve velikosti otisku, ve výkonu podle architektury a v několika detailech bezpečnosti. Zde je, kterou zvolit a proč.
Rodina SHA-2
SHA-2 sdružuje několik variant (SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256), které sdílejí stejnou strukturu, ale liší se velikostí slov a otisku. Číslo udává velikost otisku v bitech: SHA-256 produkuje 256 bitů (64 hexadecimálních znaků), SHA-512 produkuje 512 (128 znaků).
Tyto otisky můžete vypočítat naším generátorem hashů nebo rozpoznat algoritmus podle otisku pomocí identifikátoru hashů. Nezaměňujte s MD5, zastaralou z hlediska bezpečnosti (viz naše srovnání MD5 vs. SHA-256).
SHA-256
SHA-256 pracuje se slovy o 32 bitech a produkuje otisk o 256 bitech. Je to nejrozšířenější hashovací funkce na světě: TLS certifikáty, podpisy Bitcoinu, ověřování integrity souborů, git. Její kratší otisk ji činí praktickou k ukládání, zobrazování a přenosu.
- Otisk: 256 bitů, 64 hexadecimálních znaků
- Slova: 32 bitů, optimální na 32bitových platformách a ve vestavěných systémech
- Rozšíření: nejširší, univerzální podpora
SHA-512
SHA-512 pracuje se slovy o 64 bitech a produkuje otisk o 512 bitech. Proti intuici je na moderním 64bitovém procesoru často rychlejší než SHA-256 pro velké objemy, protože zpracuje více dat za kolo. Její delší otisk nabízí také vyšší bezpečnostní rezervu.
- Otisk: 512 bitů, 128 hexadecimálních znaků
- Slova: 64 bitů, optimální na 64bitových architekturách
- Nativní odolnost: SHA-512 není zranitelná vůči útoku prodloužením délky, používají-li se její zkrácené varianty (SHA-512/256)
Srovnávací tabulka
| Kritérium | SHA-256 | SHA-512 |
|---|---|---|
| Velikost otisku | 256 bitů (64 hex) | 512 bitů (128 hex) |
| Velikost slov | 32 bitů | 64 bitů |
| Rychlost na 64bitovém CPU | Dobrá | Často vyšší |
| Rychlost na 32 bitech / vestavěné | Vyšší | Pomalejší |
| Bezpečnostní rezerva | Velmi vysoká | Ještě vyšší |
| Prodloužení délky | Zranitelná | Zranitelná (kromě zkrácených variant) |
| Rozšíření | Univerzální | Široké |
Výkon
Výkon závisí na architektuře. Na 64bitovém serveru či notebooku může SHA-512 překonat SHA-256 o 20 až 50 % u velkých souborů, protože zpracuje větší bloky na iteraci. Na 32bitovém mikrokontroléru nebo v omezeném prostředí získává výhodu zpět SHA-256.
V praxi je u malých vstupů (heslo, identifikátor) rozdíl zanedbatelný. Měřitelným se stává až u značných objemů nebo vysokých propustností.
Kdy zvolit jednu či druhou
Zvolte SHA-256, když
- Cílíte na maximální kompatibilitu a kompaktní formát
- Míříte na vestavěné systémy, IoT nebo 32bitové platformy
- Ověřujete integritu souborů nebo podepisujete certifikáty
- Krátký otisk usnadňuje zobrazení a ukládání
Zvolte SHA-512, když
- Hashujete velké objemy na 64bitových serverech
- Chcete co nejširší bezpečnostní rezervu
- Používáte SHA-512/256, abyste odolali prodloužení délky a zároveň zachovali 256 bitů
Důležité: ani jedna z obou není vhodná pro hashování hesel. K tomu použijte bcrypt nebo Argon2, navržené tak, aby byly pomalé a osolené.
Doporučení
Pro obecné použití je SHA-256 výchozí volbou: univerzálně podporovaná, kompaktní, dostatečně bezpečná. Zvolte SHA-512, pokud hashujete velké objemy na 64bitovém hardwaru nebo chcete dodatečnou bezpečnostní rezervu. A pro ukládání hesel se obraťte na vyhrazenou funkci jako Argon2id, nikdy na samotnou SHA-2.
Časté dotazy
Je SHA-512 bezpečnější než SHA-256?
SHA-512 nabízí vyšší teoretickou bezpečnostní rezervu díky delšímu otisku, ale SHA-256 je již dávno mimo dosah současných útoků. Pro téměř všechna použití jsou obě považovány za bezpečné.
Proč může být SHA-512 rychlejší než SHA-256?
Protože manipuluje se slovy o 64 bitech a zpracuje větší bloky za kolo. Na nativním 64bitovém procesoru to kompenzuje dodatečnou cenu a často ji činí rychlejší u velkých objemů. Na 32 bitech je to naopak.
Mohu hashovat hesla pomocí SHA-256 nebo SHA-512?
Ne, byla by to chyba. Tyto funkce jsou rychlé, tedy snadné k útoku hrubou silou. Použijte bcrypt nebo Argon2id, které jsou záměrně pomalé a obsahují sůl.
Co je SHA-512/256?
Je to SHA-512, jejíž otisk je zkrácen na 256 bitů, s odlišnými inicializačními hodnotami. Získáte otisk o 256 bitech, rychlost SHA-512 na 64 bitech a nativní odolnost vůči útoku prodloužením délky.