Generatore di hash SHA-256

Calcola il digest SHA-256 di un testo, di byte esadecimali o di qualsiasi file con l’API Web Crypto del tuo browser. Incolla un checksum pubblicato nel campo Confronta con per verificare un download.

Tutti gli algoritmi

Funziona interamente nel tuo browser. Non viene caricato nulla.

Come si usa

  1. Digita o incolla un testo, imposta Formato input su Esadecimale per inserire byte esadecimali oppure apri il file che vuoi controllare.
  2. Lascia selezionato SHA-256 e in Formato output scegli hex (minuscole), HEX (maiuscole) o Base64.
  3. Incolla il checksum indicato nella pagina di download nel campo Confronta con. Corrisponde significa che il file è identico.
  4. Copia il risultato, oppure copia SHA-384, SHA-512 o un altro digest dalla tabella Tutti gli algoritmi.

Che cos’è SHA-256?

SHA-256 è il membro più diffuso della famiglia SHA-2, progettata dalla NSA e standardizzata dal NIST nel 2002 in FIPS 180-2. Oggi è specificato in FIPS 180-4, e la RFC 6234 riporta gli stessi algoritmi con codice di riferimento. SHA-256 elabora blocchi da 512 bit in 64 round di aritmetica a 32 bit e produce un digest di 256 bit: 64 caratteri esadecimali o 44 caratteri Base64. Non si conoscono attacchi pratici di collisione o di preimmagine, ed è la scelta predefinita per:

  • certificati e handshake TLS e firma del codice;
  • Bitcoin, che applica SHA-256 due volte per gli hash dei blocchi, la proof of work e gli ID delle transazioni (il checksum degli indirizzi Base58Check deriva dallo stesso doppio hash);
  • file di checksum come SHA256SUMS, digest delle immagini dei container (sha256:...) e Subresource Integrity.

Verificare un download

Apri il file scaricato e incolla il checksum pubblicato dall’autore nel campo Confronta con. Maiuscole e minuscole non contano, e funziona anche un valore Base64. Corrisponde significa che il file è, byte per byte, quello da cui è stato calcolato il checksum. Non dimostra però chi lo ha creato, quindi prendi il checksum dal sito HTTPS dell’autore o da un file SHA256SUMS firmato, non dal mirror da cui hai scaricato il file.

Per il testo, l’hash si calcola sui byte, non sui caratteri. I terminatori di riga Windows (CRLF), un byte order mark o UTF-16 al posto di UTF-8 producono ciascuno un hash SHA-256 completamente diverso. Usa il menu Codifica del testo o l’input Esadecimale per calcolare l’hash esattamente degli stessi byte usati dall’altro sistema.

Estensione della lunghezza e password

Come MD5, SHA-1 e SHA-512, anche SHA-256 è esposto all’attacco di estensione della lunghezza: conoscendo SHA-256(secret + message) e la lunghezza del segreto, un attaccante può calcolare un hash valido per quel messaggio seguito da padding e da dati a sua scelta, senza conoscere il segreto. Per firmare o autenticare dati con una chiave, usa HMAC-SHA256 con il Generatore HMAC invece di calcolare l’hash della chiave e del messaggio concatenati.

La velocità è anche il motivo per cui un semplice SHA-256 è il modo sbagliato di memorizzare le password: chiunque ottenga gli hash può provare tentativi alla stessa velocità con cui le sue schede grafiche calcolano SHA-256, e password identiche producono hash identici. Usa Argon2id, scrypt, bcrypt o PBKDF2-HMAC-SHA256 con un numero elevato di iterazioni: tutti aggiungono un salt.

SHA-256 dalla riga di comando e nel codice

$ printf 'abc' | sha256sum
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad  -

sha256sum -c SHA256SUMS                  # Linux: verifica un elenco di file
shasum -a 256 file.iso                   # macOS
certutil -hashfile file.iso SHA256       # Windows
Get-FileHash file.iso                    # PowerShell (SHA256 è il predefinito)

# Python
hashlib.sha256(data).hexdigest()

// Node.js
crypto.createHash('sha256').update(data).digest('hex')

Il valore per abc è il vettore di test dello standard; digita abc qui sopra per vedere lo stesso risultato. La tabella Tutti gli algoritmi elenca anche i valori SHA-384, SHA-512, SHA-1, MD5 e CRC del tuo input.

Esempi

Input (UTF-8)SHA-256
Hello, World!dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f
Base64.is63f2f446bc11a1f96175c0f77bdac08ca1b184ba42c3a42c34ddcbce00b1b800
你好670d9743542cae3ea7ebe36af56bd53648b0a1126162e78d81a32934a711302e

Domande frequenti

SHA-256 si può decifrare?

No. SHA-256 è un hash unidirezionale, non una cifratura. I "decifratori" online si limitano a cercare gli hash in tabelle di input noti, quindi trovano password comuni e stringhe brevi, ma niente di lungo o casuale.

Perché il mio SHA-256 non corrisponde al checksum pubblicato?

Nella maggior parte dei casi il download è incompleto o è una versione diversa, oppure hai calcolato l’hash del nome del file anziché del file. Carica il file vero e proprio con Apri file. Controlla anche che entrambi i valori usino lo stesso algoritmo: un valore esadecimale di 128 caratteri proviene da un hash a 512 bit come SHA-512, non da SHA-256.

Come ottengo un hash SHA-256 in Base64?
Imposta Formato output su Base64. Subresource Integrity (valori sha256-, anche se sha384- è più comune) e l’header HTTP Content-Digest usano questa forma. Esadecimale e Base64 contengono gli stessi 32 byte; puoi passare dall’uno all’altro con Base64 in esadecimale.
SHA-256 è la stessa cosa di SHA-2?

SHA-2 è una famiglia: SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 e SHA-512/256. SHA-256 ne è il membro più comune. SHA-3 (FIPS 202) è un progetto distinto basato su Keccak e dà risultati diversi.

Quanto è lungo un hash SHA-256?
32 byte: 64 caratteri esadecimali o 44 caratteri Base64 che terminano con =. SHA3-256 e BLAKE2s hanno la stessa lunghezza; l’Identificatore di hash elenca questi candidati per un hash sconosciuto.