Hash/Crittografia

HMAC Generator

Calcola l'HMAC (Hash-based Message Authentication Code) di un testo o file con una chiave segreta — con otto algoritmi contemporaneamente: MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA3-256, SHA3-512, RIPEMD-160.

HMAC (Hash-based Message Authentication Code) is a hash computed together with a secret key, proving a message hasn't changed and was sent by someone who knows that key. Unlike a plain hash, an HMAC can't be forged without knowing the secret.

How to use it

Common uses

Things to keep in mind

HMAC protects against tampering and confirms the sender's authenticity, but it doesn't encrypt the message itself — the content stays readable.

A mismatched HMAC is most often caused by different data encoding (e.g. JSON field order) or a stray whitespace or line break, not by a bug in the algorithm itself.

Articolo su questo strumento: HMAC: in cosa differisce un hash con chiave da un hash normale

Domande frequenti

Qual è la differenza tra HMAC e un hash semplice?

Un hash semplice dimostra solo che i dati non sono stati alterati; HMAC usa inoltre una chiave segreta, quindi dimostra sia l'integrità sia che il mittente conosceva il segreto condiviso — senza la chiave nessuno può produrre un HMAC valido anche conoscendo l'algoritmo.

Quale algoritmo di hash dovrei scegliere per HMAC?

HMAC-SHA256 è una solida scelta moderna predefinita. Opzioni più vecchie come HMAC-MD5 o HMAC-SHA1 non sono ancora violate come HMAC specificamente, ma per i nuovi sistemi si consiglia SHA-256 o superiore.

La mia chiave segreta viene inviata da qualche parte?

No. L'HMAC viene calcolato interamente nel tuo browser tramite la Web Crypto API — la chiave e il messaggio non lasciano mai il tuo dispositivo.

Perché non si può confrontare un HMAC con un normale operatore di uguaglianza?

Il normale confronto di stringhe si ferma alla prima differenza, e il tempo di esecuzione rivela all'attaccante quanti dei primi caratteri ha indovinato correttamente (timing attack). Servono funzioni di confronto a tempo costante, come hash_equals in PHP.

Si può usare la stessa chiave per più scopi diversi?

Non è consigliato. Se la stessa chiave segreta viene usata sia per firmare i webhook sia per un altro scopo, la compromissione di un sistema compromette automaticamente anche l'altro — per ogni uso specifico è meglio generare una chiave separata.

Articoli: Hash/Crittografia

Hash Generator: in cosa differiscono MD5, SHA-1 e SHA-256

Perché MD5 viene ancora usato per verificare l'integrità dei file, ma non per le password.

Checksum Verifier: come verificare che un file non sia danneggiato

Perché un checksum corrispondente conferma l'integrità di un file, ma non chi lo ha creato.

Bcrypt: perché le password vengono hashate lentamente, non velocemente

Perché un SHA-256 veloce è una cattiva scelta per le password, e un bcrypt lento è quella giusta.

UUID: come vengono generati identificatori che quasi non si ripetono mai

Perché un UUID v4 può essere generato in modo indipendente su milioni di macchine senza rischio di collisione.

Generatore di password: cosa rende davvero forte una password

Perché una password lunga fatta di parole del dizionario è più forte di una corta con simboli e numeri.

AES: come funziona la crittografia simmetrica

Perché la stessa chiave cifra e decifra i dati in AES, e come questo differisce dalla crittografia asimmetrica.

Argon2: perché questo algoritmo ha vinto il concorso sull'hashing delle password

Come Argon2 si difende meglio dagli attacchi con GPU rispetto agli algoritmi di hashing password più vecchi.

Scrypt: perché l'algoritmo ha bisogno di così tanta memoria

Perché scrypt richiede deliberatamente molta memoria per rendere più difficile il cracking su dispositivi ASIC.

TOTP: come funzionano i codici monouso nelle app di autenticazione

Perché il codice di Google Authenticator funziona senza internet e si sincronizza col server solo tramite l'ora.

PBKDF2: lo standard più vecchio per lo stretching delle chiavi

Perché il numero di iterazioni raccomandato per PBKDF2 cresce ogni anno.

X.509: cosa c'è dentro un certificato SSL

Cosa controlla esattamente il browser nel certificato di un sito prima di mostrare il lucchetto verde.

PGP: come funziona la crittografia a chiave pubblica e privata

Perché si può condividere liberamente una chiave pubblica PGP, ma mai quella privata.