Generatore di hash
Basta digitare un testo o scegliere un file per ottenere i digest MD5, SHA-1, SHA-256, SHA-384 e SHA-512 affiancati, ciascuno con il proprio pulsante di copia. Il calcolo avviene sul dispositivo tramite la Web Crypto API del browser e una routine MD5 locale, quindi i file non vengono mai caricati.
0 caratteri · 0 parole · 0 righe
- MD5non per la sicurezza
- —
- SHA-1non per la sicurezza
- —
- SHA-256
- —
- SHA-384
- —
- SHA-512
- —
0 caratteri · 0 parole · 0 righe
Funziona interamente in questa scheda del browser. Il testo non viene mai caricato né salvato.
Dimensioni dei digest
Le lunghezze e i digest dell'input vuoto sono stati calcolati con l'MD5 di questa pagina e con la Web Crypto API al momento della generazione.
| Algoritmo | Bit del digest | Lunghezza esadecimale | Bit del blocco | Stato | Hash di input vuoto |
|---|---|---|---|---|---|
| MD5 | 128 | 32 | 512 | Insicuro: collisioni trovate nel 2004 | d41d8cd98f00b204e9800998ecf8427e |
| SHA-1 | 160 | 40 | 512 | Insicuro: collisione dimostrata nel 2017 | da39a3ee5e6b4b0d3255bfef95601890afd80709 |
| SHA-256 | 256 | 64 | 512 | Sicuro (SHA-2) | e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 |
| SHA-384 | 384 | 96 | 1024 | Sicuro (SHA-2) | 38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b |
| SHA-512 | 512 | 128 | 1024 | Sicuro (SHA-2) | cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e |
Cinque algoritmi, due dei quali ormai superati
Una funzione di hash trasforma un input di qualsiasi dimensione in un'impronta di lunghezza fissa. Basta cambiare un solo carattere e circa metà dei bit dell'output si inverte, quindi anche "UltKit" e "ultkit" producono digest senza alcuna relazione. MD5, pubblicato da Ron Rivest nella RFC 1321 nel 1992, produce 128 bit (32 caratteri esadecimali). Nel 2004 Xiaoyun Wang e i suoi colleghi dimostrarono come costruire due input diversi con lo stesso hash MD5, e nel 2012 il malware Flame sfruttò una collisione MD5 per falsificare un certificato di firma del codice di Microsoft. SHA-1 (160 bit) cadde allo stesso modo quando Google e il CWI di Amsterdam pubblicarono nel 2017 la prima collisione reale, SHAttered. Entrambi sono contrassegnati qui come "non adatti alla sicurezza".
SHA-256, SHA-384 e SHA-512 appartengono alla famiglia SHA-2, specificata dal NIST nella FIPS 180-4, e non si conoscono attacchi pratici contro di loro. SHA-256 è la scelta predefinita per i download di software, il formato di oggetti più recente di Git, i certificati TLS e Bitcoin. MD5 e SHA-1 restano adatti a compiti non soggetti ad attacchi, come individuare un danneggiamento accidentale o eliminare i file duplicati, ed è per questo che molte pagine di download li elencano ancora.
Perché l'hashing non è crittografia
La cifratura è reversibile per progettazione: chi possiede la chiave recupera l'originale. Un hash non ha chiave e non può essere invertito, perché innumerevoli input corrispondono a ogni digest. Questo non rende l'hash un contenitore sicuro per i segreti. Un attaccante che vede lo SHA-256 di un input breve o comune calcola l'hash di vari candidati finché uno coincide, e le tabelle precalcolate coprono miliardi di password note. Gli hash veloci sono pensati per essere veloci, e le GPU moderne provano miliardi di tentativi SHA-256 al secondo.
Per questo le password vanno salvate con un hash per password volutamente lento e con salt, come Argon2, bcrypt o scrypt, mai con semplice MD5 o SHA-256, e le password stesse si possono creare con un generatore di password. Questa pagina serve a ciò che gli hash veloci fanno bene: verificare che un file scaricato corrisponda al checksum indicato dall'editore, confrontare due file senza aprirli o controllare un digest calcolato dal proprio codice. Il testo viene sottoposto a hash come UTF-8 senza a capo finale, che è il motivo abituale per cui un risultato differisce da echo "text" | sha256sum in un terminale. La sezione strumenti per sviluppatori confronta l'hash con le codifiche reversibili su un unico esempio.
Domande frequenti
- Come si verifica un file scaricato con il checksum SHA-256?
- Scegliete il file con Hash a file, poi confrontate la riga SHA-256 con il valore indicato sul sito dell'editore. Ogni carattere deve coincidere; l'esadecimale maiuscolo cambia solo il modo in cui vengono mostrate le lettere da a a f.
- Un hash MD5 o SHA-256 si può decifrare?
- No, non c'è nulla da decifrare. I siti che dichiarano di invertire gli hash cercano il digest in tabelle di stringhe già sottoposte a hash, il che funziona solo con input brevi o comuni.
- Perché MD5 è ancora disponibile se non è più sicuro?
- Molti sistemi pubblicano ancora checksum MD5, e rileva benissimo le modifiche accidentali. È compromesso solo contro un attaccante in grado di creare apposta file in collisione.
- Qual è l'hash MD5 di una stringa vuota?
- d41d8cd98f00b204e9800998ecf8427e. Vedere questo valore di solito significa che un programma ha calcolato l'hash di un input vuoto, per esempio perché un file non è stato caricato prima del calcolo.
- SHA-512 è più sicuro di SHA-256?
- Entrambi sono integri e ben oltre la portata della forza bruta. SHA-512 ha un output più lungo e può essere più veloce sui processori a 64 bit, ma SHA-256 è la scelta più comunemente attesa per checksum e firme.