Cosa fa questo strumento
Calcola l'hash SHA-256 di qualsiasi testo o file nel tuo browser, restituendo un digest esadecimale di 64 caratteri. SHA-256 è il cavallo da lavoro dell'hashing crittografico moderno: 256 bit di output, parte della famiglia SHA-2 (FIPS 180-4), progettata dalla NSA e pubblicata nel 2001. Dopo più di due decenni di scrutinio pubblico, nessun attacco di collisione pratico su SHA-256 è noto. È il default giusto per quasi qualsiasi nuovo codice che ha bisogno di un hash crittografico.
Dove SHA-256 è in uso
- Certificati TLS. Ogni certificato HTTPS emesso oggi porta una firma SHA-256 (o più forte).
- Digest di immagini di container. Docker, OCI e Kubernetes usano SHA-256 per identificare le immagini in modo univoco. La notazione
@sha256:abc...nei riferimenti alle immagini è esattamente questo. - Hash di blocchi Bitcoin e ID di transazioni. Il proof-of-work di Bitcoin è SHA-256 applicato due volte; ogni transazione è identificata dal suo digest SHA-256.
- Subresource Integrity (SRI).
<script integrity="sha256-...">dice al browser di rifiutare lo script se il suo hash non corrisponde. - Verifica di release software. Quando un progetto pubblica un download accanto a un checksum SHA-256, è quello che ci si aspetta.
- Formato di oggetti di nuova generazione di git. Git 2.29+ supporta SHA-256 come alternativa a SHA-1 per nuovi repository.
- Firme JWT (HS256, RS256, ES256). Il « 256 » in quei nomi di algoritmi è SHA-256.
Quando scegliere SHA-256 piuttosto che SHA-512
- Compatibilità. Quasi ogni sistema che accetta un hash accetta SHA-256. SHA-512 è ben supportato ma non universale.
- Dimensione di output. SHA-256 entra in 32 byte, SHA-512 in 64 byte. Per applicazioni sensibili allo storage (colonne di database, parametri di URL, campi di certificato), SHA-256 è metà dei byte.
Scegli SHA-512 quando stai hashando molti gigabyte di dati su una macchina 64 bit — SHA-512 opera nativamente su parole 64 bit e può essere marginalmente più veloce nonostante il digest più grande.
Quando SHA-256 non è lo strumento giusto
- Archiviazione password. Stesso avvertimento degli altri hash veloci: usa bcrypt, scrypt o Argon2. SHA-256 è troppo veloce — una GPU moderna ne calcola miliardi al secondo.
- Autenticazione di messaggio. Usa HMAC-SHA-256, non SHA-256 nudo.
HMAC(key, message)è la costruzione; SHA-256 da solo non prende una chiave. - Derivazione di chiave. Usa HKDF o PBKDF2-SHA-256, non SHA-256 nudo. Hashare direttamente una password in una chiave non è sicuro.
Vettori di test
Vettori di test SHA-256 canonici da FIPS 180-4:
- Stringa vuota
""→e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 "abc"→ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"→248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1"The quick brown fox jumps over the lazy dog"→d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592
Note
Perché 64 caratteri? SHA-256 produce 256 bit = 32 byte = 64 caratteri hex.
Questa implementazione è a tempo costante? Sì — usa il crypto.subtle.digest di WebCrypto del browser, che la piattaforma espone come primitiva nativa a tempo costante. Non c'è uscita anticipata sui dati di input che farebbe trapelare il timing.
Limiti di dimensione del file? Il selettore di file hasha fino a 256 MB in locale. File più grandi sono tecnicamente possibili ma lenti sul thread principale; per quelli, preferisci sha256sum in un terminale.
Perché il mio SHA-256 differisce da sha256sum? Newline finale. echo "hello" | sha256sum aggiunge \n; incollare "hello" qui no. Usa echo -n o il selettore di file per un match byte-esatto.
Strumenti correlati
- Generatore di hash — tutti e cinque gli hash affiancati
- SHA-512 — stesso livello di sicurezza, digest più lungo, più veloce su CPU 64 bit
- SHA-1 — predecessore, deprecato per la sicurezza
- Base64 — codifica un digest binario per il trasporto (per esempio, attributi SRI)