Encoders & Utilities

Generatore di hash

Calcola MD5, SHA-1, SHA-256, SHA-384, SHA-512 e HMAC per testo o file. Hashing locale fino a 100 MB.

Informazioni su questo strumento

Hash Generator calcola hash crittografici per testo o file interamente nel browser. Gli algoritmi supportati coprono l'intera famiglia SHA-2 (SHA-256, SHA-384, SHA-512) tramite la Web Crypto API, oltre allo storico MD5 e SHA-1 tramite una piccola implementazione JS (mantenuti per la verifica di output legacy). Le varianti HMAC sono disponibili per tutti gli algoritmi SHA-2 — si incolla una chiave e il messaggio, si ottiene l'output keyed-hash pronto per la verifica della firma.

Per i file (drag-and-drop), il file viene fatto streaming attraverso la funzione hash a chunk — così si può fare l'hash di un'ISO da 100 MB in pochi secondi senza inviarla da nessuna parte. L'output può essere visualizzato come hex minuscolo o maiuscolo, o come Base64 (utile per autenticazione HTTP e firme JWT). Si possono selezionare più algoritmi contemporaneamente; il file viene fatto streaming una sola volta e gli hash vengono calcolati in parallelo.

Quando usare questo strumento

  • Verificare i download. Confronta lo SHA-256 di un file con il checksum pubblicato dal progetto per rilevare manomissioni o corruzione.
  • Generare un hash di integrità. Pre-calcola SHA-256 per un asset prima di aggiungere l'attributo integrity="sha256-..." su un tag <script>.
  • Firmare richieste API. Calcola HMAC-SHA-256 per la firma di richieste in stile AWS senza scrivere uno script.
  • Deduplicazione rapida. Una fingerprint SHA-1 per file basta abbondantemente per controlli "questi due file sono identici?".

Quando NON usare MD5 o SHA-1

Entrambi sono crittograficamente compromessi. Le collisioni MD5 sono state dimostrate dal 2008; SHA-1 dal 2017 (l'attacco SHAttered). Usarli solo per verifica legacy — mai per nuove firme, hashing di password o anti-manomissione. Per le password in particolare, usare bcrypt, scrypt o Argon2 al posto di qualsiasi hash semplice; questi sono deliberatamente lenti e memory-hard per sconfiggere attacchi di brute-force.

Domande frequenti

Dovrei usare MD5 per memorizzare password?

Assolutamente no. Gli hash semplici (MD5, SHA-1, persino SHA-256) sono progettati per essere veloci, che è l'opposto di ciò che si vuole per le password — veloce significa che gli attaccanti le brute-forzano. Usare una funzione deliberatamente lenta e memory-hard come bcrypt, scrypt o Argon2id. La maggior parte dei framework moderni ne include una come password hasher predefinito.

L'hashing browser è accurato come gli strumenti da riga di comando?

Sì — per SHA-256 e la famiglia SHA-2 l'output è identico bit per bit a sha256sum su Linux o shasum -a 256 su macOS, perché entrambi chiamano lo stesso algoritmo fondamentale. Anche le nostre implementazioni MD5 e SHA-1 sono ampiamente testate. L'unica differenza rispetto alla CLI è la performance: il codice nativo è più veloce su file enormi, ma il browser gestisce 100 MB comodamente.

Cos'è HMAC?

Un hash con chiave — combina una chiave segreta con l'input in modo che l'output non possa essere falsificato da chi non conosce la chiave. Usato per firmare richieste API (AWS Signature V4 è HMAC-SHA-256), firme JWT con l'algoritmo HS256 e validazione webhook. Lo stesso algoritmo con chiavi diverse produce output non correlati, il che lo rende una firma anziché una fingerprint.

Perché il mio hash è diverso da un altro strumento?

Di solito a causa di line ending o codifica. hello con un newline finale produce hash diverso da hello senza. Testo codificato UTF-8 vs UTF-16 differisce. Line ending CRLF vs LF differiscono. Assicurarsi che entrambi gli strumenti stiano leggendo esattamente gli stessi byte — il controllo più semplice è fare l'hash di un file (non di una stringa) e confermare che entrambi gli strumenti concordino sulla sequenza di byte.