SHA-256 vs SHA-512: quale funzione di hash scegliere?

SHA-256 e SHA-512 appartengono entrambe alla famiglia SHA-2, progettata dalla NSA e standardizzata dal NIST. Producono un'impronta di dimensione fissa a partire da qualsiasi dato e oggi sono considerate sicure. La differenza sta nella dimensione dell'impronta, nelle prestazioni a seconda dell'architettura e in alcuni dettagli di sicurezza. Ecco quale scegliere e perché.

La famiglia SHA-2

SHA-2 raggruppa diverse varianti (SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256) che condividono la stessa struttura ma differiscono per la dimensione delle parole e dell'impronta. Il numero indica la dimensione dell'impronta in bit: SHA-256 produce 256 bit (64 caratteri esadecimali), SHA-512 ne produce 512 (128 caratteri).

Puoi calcolare queste impronte con il nostro generatore di hash, o riconoscere un algoritmo a partire da un'impronta con l'identificatore di hash. Da non confondere con MD5, obsoleto per la sicurezza (vedi il nostro confronto MD5 vs SHA-256).

SHA-256

SHA-256 lavora su parole di 32 bit e produce un'impronta di 256 bit. È la funzione di hash più diffusa al mondo: certificati TLS, firme di Bitcoin, verifica dell'integrità dei file, git. La sua impronta più corta la rende pratica da memorizzare, visualizzare e trasmettere.

  • Impronta: 256 bit, 64 caratteri esadecimali
  • Parole: 32 bit, ottimale sulle piattaforme a 32 bit e sull'embedded
  • Adozione: la più ampia, supporto universale

SHA-512

SHA-512 lavora su parole di 64 bit e produce un'impronta di 512 bit. Controintuitivamente, su un processore a 64 bit moderno è spesso più veloce di SHA-256 per i grandi volumi, perché elabora più dati per round. La sua impronta più lunga offre inoltre un margine di sicurezza superiore.

  • Impronta: 512 bit, 128 caratteri esadecimali
  • Parole: 64 bit, ottimale sulle architetture a 64 bit
  • Resistenza nativa: SHA-512 non è vulnerabile all'attacco per estensione di lunghezza quando si usano le sue varianti troncate (SHA-512/256)

Tabella comparativa

Criterio SHA-256 SHA-512
Dimensione dell'impronta256 bit (64 hex)512 bit (128 hex)
Dimensione delle parole32 bit64 bit
Velocità su CPU a 64 bitBuonaSpesso superiore
Velocità su 32 bit / embeddedSuperiorePiù lenta
Margine di sicurezzaMolto elevatoAncora superiore
Estensione di lunghezzaVulnerabileVulnerabile (tranne varianti troncate)
AdozioneUniversaleAmpia

Prestazioni

Le prestazioni dipendono dall'architettura. Su un server o un portatile a 64 bit, SHA-512 può superare SHA-256 dal 20 al 50 % sui file di grandi dimensioni, perché elabora blocchi più grandi per iterazione. Su un microcontrollore a 32 bit o un ambiente vincolato, SHA-256 riprende il vantaggio.

In pratica, per piccoli input (una password, un identificativo) la differenza è trascurabile. Diventa misurabile solo su volumi importanti o throughput elevati.

Quando scegliere l'uno o l'altro

Scegliere SHA-256 quando

  • Punti alla massima compatibilità e a un formato compatto
  • Ti rivolgi all'embedded, all'IoT o alle piattaforme a 32 bit
  • Verifichi l'integrità dei file o firmi certificati
  • Un'impronta corta facilita la visualizzazione e l'archiviazione

Scegliere SHA-512 quando

  • Calcoli l'hash di grandi volumi su server a 64 bit
  • Vuoi il margine di sicurezza più ampio possibile
  • Usi SHA-512/256 per resistere all'estensione di lunghezza mantenendo 256 bit

Importante: nessuna delle due è adatta all'hashing delle password. Per questo, usa bcrypt o Argon2, progettati per essere lenti e con sale.

Raccomandazione

Per un uso generale, SHA-256 è la scelta predefinita: supportato universalmente, compatto, ampiamente sicuro. Opta per SHA-512 se calcoli l'hash di grandi volumi su hardware a 64 bit o se vuoi un margine di sicurezza supplementare. E per memorizzare le password, rivolgiti a una funzione dedicata come Argon2id, mai a SHA-2 da solo.

Domande frequenti

SHA-512 è più sicuro di SHA-256?

SHA-512 offre un margine di sicurezza teorico superiore grazie alla sua impronta più lunga, ma SHA-256 è già ampiamente fuori dalla portata degli attacchi attuali. Per la quasi totalità degli usi, entrambe sono considerate sicure.

Perché SHA-512 può essere più veloce di SHA-256?

Perché manipola parole di 64 bit ed elabora blocchi più grandi per round. Su un processore a 64 bit nativo, questo compensa il sovraccarico e lo rende spesso più veloce sui grandi volumi. Su 32 bit è il contrario.

Posso usare SHA-256 o SHA-512 per le password?

No, sarebbe un errore. Queste funzioni sono veloci, quindi facili da attaccare per forza bruta. Usa bcrypt o Argon2id, che sono volutamente lenti e integrano un sale.

Cos'è SHA-512/256?

È SHA-512 con l'impronta troncata a 256 bit, con valori di inizializzazione diversi. Si ottiene un'impronta di 256 bit, la velocità di SHA-512 su 64 bit e una resistenza nativa all'attacco per estensione di lunghezza.