Calcola firme HMAC-SHA-256 e HMAC-SHA-512 con la tua chiave segreta — direttamente nel tuo browser.
HMAC (Hash-based Message Authentication Code, RFC 2104) combina una chiave segreta con un messaggio per produrre una firma che solo chi possiede la stessa chiave può riprodurre. È il meccanismo alla base della maggior parte delle verifiche di webhook — Stripe, GitHub, Shopify e Slack firmano tutti i payload dei loro webhook con HMAC-SHA-256 — oltre che di URL firmati, firma delle richieste API e controlli di integrità dei token di sessione. Quando una validazione di webhook fallisce, calcolare a mano la firma attesa con questo strumento è di solito il modo più rapido per trovare la discrepanza.
Il calcolo usa SubtleCrypto, l'API WebCrypto nativa del browser: la chiave viene importata con crypto.subtle.importKey e la firma prodotta con crypto.subtle.sign, quindi la crittografia è l'implementazione verificata del browser stesso, non JavaScript che la reinventa. HMAC non è semplicemente hash(chiave + messaggio): esegue l'hash due volte, mescolando la chiave con due padding diversi (vedi la formula qui sotto), il che chiude gli attacchi di length extension che compromettono la costruzione ingenua. L'output riproduce esattamente i vettori di test della RFC 4231.
La tua chiave segreta non lascia mai il browser: questo strumento non effettua richieste di rete, non carica nulla e non salva nulla — puoi verificarlo nella scheda network degli strumenti per sviluppatori del tuo browser. Due note pratiche per il codice in produzione: confronta sempre le firme con un confronto a tempo costante per evitare attacchi di timing, e assicurati che entrambe le parti firmino esattamente gli stessi byte — un newline finale invisibile o un body JSON riserializzato è la causa più comune di HMAC che non coincidono.
HMAC(K, m) = H((K xor opad) || H((K xor ipad) || m)), dove H è la funzione di hash e ipad (byte 0x36) e opad (byte 0x5c) vengono ripetuti fino alla dimensione del blocco dell'hash. Il doppio hashing annidato previene gli attacchi di length extension che compromettono le costruzioni ingenue hash(chiave + messaggio).
Dimostra che un messaggio proviene da chi possiede la chiave segreta e non è stato alterato in transito. Usi tipici: verificare i payload dei webhook (Stripe, GitHub, Shopify), firmare richieste API e proteggere URL o cookie da manomissioni.
No. La chiave e il messaggio vengono elaborati al 100% in locale dall'API WebCrypto del tuo browser — nulla viene trasmesso, registrato o salvato da nessuna parte.
Quasi sempre è una differenza di codifica: un newline finale, un body JSON riserializzato, UTF-8 contro un'altra codifica, oppure output esadecimale confrontato con Base64. Firma esattamente gli stessi byte con la stessa chiave e le firme coincideranno.
Entrambi sono considerati sicuri. HMAC-SHA-256 è lo standard del settore ed è ciò che usa la maggior parte dei provider di webhook; scegli HMAC-SHA-512 quando la parte ricevente si aspetta una firma di 128 caratteri.
No. HMAC autentica un messaggio ma non lo nasconde — chiunque può comunque leggerne il contenuto. Usa la crittografia per la riservatezza e HMAC (o entrambi, come nella crittografia autenticata) per integrità e autenticità.
Vai.la trasforma qualsiasi URL in un link breve con statistiche dei clic, QR Code e il tuo biolink personale.
Vai.la non è responsabile dell'uso degli strumenti né delle decisioni prese in base ai loro risultati.