logo
GeekFormat

Generatore e verificatore HMAC

algoritmo Hashi

La lunghezza consigliata corrisponde alla lunghezza dell'uscita Hash: SHA-1=20 byte, SHA-256=32 byte, SHA-384=48 byte, SHA-512=64 byte

Contenuto del messaggio0 caratteri
Firma HMAC (Hex)
In attesa di input…

Note

  • HMAC Genera firme basate su algoritmi chiave e Hashi per l'autenticazione della sorgente e dell'integrità
  • Supporto SHA-1 / SHA-256 / SHA-384 / SHA-512
  • Generare e convalidare sia localmente nei browser, senza caricare i dati
  • La convalida utilizza la lunghezza fissa per byte per ridurre le differenze della serie di tempo

Genera e verifica firme HMAC online gratis, supporta serie algoritmi SHA comuni. Ideale per firme API, verifica Webhook e debug sicurezza.

Raccomandazioni correlate

Casi d'uso

  • Sviluppo webhook Stripe: Debug dei callback di pagamento Stripe, verifica la correttezza dell'header `Stripe-Signature`
  • Integrazione webhook GitHub: Verifica la firma `X-Hub-Signature-256` per eventi Push e Pull Request di GitHub
  • Sincronizzazione ordini Shopify: Verifica la firma `X-Shopify-Hmac-Sha256` per webhook di aggiornamento ordini Shopify
  • Firme bot Slack: Verifica `X-Slack-Signature` per callback eventi Slack
  • Debug sviluppo JWT: Firma JWT con HS256, verifica la validità del token
  • Firma richieste API: Implementa AWS Signature V4 o schemi di firma API personalizzati

Funzionalità

  • Supporto multi-algoritmo: HMAC-SHA256/384/512, SHA1, MD5 — copre API moderne e sistemi legacy
  • Verifica firma Webhook: Supporto integrato per formati firma Stripe/GitHub/Shopify/Slack con parsing automatico
  • Tre formati di output: Hex / Base64 / Base64URL — soddisfa qualsiasi requisito API o piattaforma
  • Generazione in tempo reale: Calcolo automatico al cambio di input con debounce di 300ms, nessun clic necessario
  • Modalità verifica firma: Incolla la firma prevista per confrontare, visualizzazione risultato in tempo reale
  • Rilevamento lunghezza chiave: Monitoraggio in tempo reale della forza della chiave con avvisi per chiavi corte
  • Elaborazione nel browser: Web Crypto API per calcolo locale, chiavi mai caricate su server
  • Supporto JWT: Output HMAC-SHA256 direttamente utilizzabile per firma HS256

Come utilizzare

  1. Seleziona algoritmo: HMAC-SHA256 predefinito, consigliato per API moderne
  2. Inserisci messaggio: Incolla il corpo del messaggio grezzo o il contenuto della richiesta API
  3. Inserisci chiave: Input Webhook Secret o API Secret
  4. Scegli formato: Seleziona formato output (hex per Stripe, Base64URL per JWT)
  5. Verifica firma: Passa alla modalità verifica, incolla la firma prevista per confrontare

Domande frequenti

Qual è la differenza tra HMAC e hash normale?

Le funzioni hash normali (come SHA256) calcolano solo un digest del messaggio stesso — chiunque può calcolarlo. L'HMAC introduce una chiave segreta nel processo di hashing, quindi solo chi possiede la chiave può generare o verificare una firma valida. L'HMAC garantisce sia l'integrità del messaggio che l'autenticità, mentre l'hash normale verifica solo l'integrità.

Come verificare le firme Webhook di Stripe/GitHub/Shopify?

Ogni piattaforma formatta le firme in modo diverso: Stripe usa l'header `Stripe-Signature` con formato `t=timestamp,v1=hex_signature`, firmando la stringa `timestamp.payload`; GitHub usa `X-Hub-Signature-256` con formato `sha256=hex_signature`; Shopify usa `X-Shopify-Hmac-Sha256` con valore codificato in Base64. Questo strumento supporta la verifica diretta di questi formati comuni.

Qual è la differenza tra output Hex, Base64 e Base64URL?

Hex è il formato esadecimale (0-9, A-F), leggibile dall'uomo, ottimo per il debug. Base64 è una codifica a 64 caratteri, più compatta, ideale per incorporare in JSON. Base64URL è la versione URL-safe (sostituisce +/ con -_), usata negli header JWT e nei parametri URL.

Quale algoritmo HMAC dovrei usare?

**HMAC-SHA256 è consigliato**: è lo standard moderno per API e webhook (usato da Stripe, GitHub, Shopify, Slack), con output di 32 byte e supporto universale. SHA-512 offre maggiore sicurezza ma output più lungo (64 byte). SHA1 è solo per sistemi legacy. MD5 è deprecato e va usato solo per API molto vecchie.

Quali sono i requisiti per la lunghezza della chiave?

Chiavi più lunghe sono più sicure. Si consiglia un minimo di 16 caratteri (128 bit), 32+ caratteri per la produzione. Lo strumento monitora la lunghezza della chiave e avvisa se è troppo corta. Usa generatori di numeri casuali crittograficamente sicuri per le chiavi, non password semplici o stringhe prevedibili.

Perché la verifica della firma mostra mancata corrispondenza?

Cause comuni: 1) Il messaggio contiene spazi bianchi o ritorni a capo extra; 2) La piattaforma firma una stringa composita (es. Stripe firma `timestamp.payload`); 3) La firma include un prefisso che devi rimuovere (come `sha256=` di GitHub); 4) Algoritmo diverso utilizzato. Controlla che entrambi i lati usino parametri identici.

L'HMAC può essere usato per la firma JWT?

Sì. L'algoritmo HS256 di JWT è HMAC-SHA256, e HS512 è HMAC-SHA512. L'output HMAC-SHA256 di questo strumento può essere usato direttamente come contenuto della firma per HS256. Header e Payload JWT sono codificati in Base64URL, poi firmati con HS256.

Questo strumento HMAC online è sicuro?

Questo strumento usa Web Crypto API per tutti i calcoli nel tuo browser localmente. Chiavi e messaggi non vengono mai inviati a nessun server. Puoi verificarlo aprendo il pannello Network degli Strumenti per Sviluppatori del browser — nessuna richiesta esterna viene effettuata. Adatto per test e sviluppo; per chiavi di produzione altamente sensibili, usa strumenti offline locali.

Le firme HMAC possono essere falsificate?

No. La sicurezza HMAC dipende dalla segretezza della chiave e dalla resistenza alle collisioni dell'algoritmo hash. Con chiavi sufficientemente lunghe e casuali, non esistono attacchi noti in grado di falsificare firme HMAC valide. La rotazione regolare delle chiavi è una buona pratica di sicurezza.

Che cos'è Generatore e verificatore HMAC?

HMAC (Hash-based Message Authentication Code) è una tecnologia di autenticazione dei messaggi ampiamente utilizzata definita in RFC 2104. L'HMAC elabora una chiave insieme a un messaggio attraverso una funzione hash per produrre una firma di lunghezza fissa. A differenza degli hash normali, l'HMAC richiede la conoscenza della chiave per generare o verificare una firma, garantendo sia l'integrità del messaggio che l'autenticità.

**L'HMAC è la base della sicurezza API moderna**. Stripe, GitHub, Shopify, Slack e Twilio usano HMAC-SHA256 per firmare gli eventi webhook, assicurando che le richieste provengano effettivamente dalla piattaforma. AWS usa HMAC-SHA256 per la firma delle richieste Signature V4. L'algoritmo HS256 di JWT è essenzialmente HMAC-SHA256. Comprendere l'HMAC è il primo passo per padroneggiare la sicurezza API.

**Piattaforme diverse hanno formati di firma diversi**: il formato di Stripe è `t=timestamp,v1=hex_signature`, firmando `timestamp.payload`; GitHub usa `X-Hub-Signature-256` con formato `sha256=hex_signature`; Shopify usa `X-Shopify-Hmac-Sha256` con valore codificato in Base64. Questo strumento supporta il parsing e la verifica automatica di questi formati comuni.

**Perché la verifica della firma fallisce?** Il motivo più comune è la mancata corrispondenza del formato del messaggio: la piattaforma potrebbe firmare `timestamp.payload` invece del corpo del messaggio grezzo; o il messaggio contiene ritorni a capo extra; o la firma include un prefisso (come `sha256=`) che deve essere rimosso. Controlla attentamente la documentazione della piattaforma e confronta usando il valore esadecimale grezzo.

Questo strumento usa **Web Crypto API** nativa del browser (SubtleCrypto) per i calcoli HMAC — la stessa libreria crittografica che alimenta HTTPS e TLS. Tutti i calcoli avvengono localmente; chiavi e messaggi non vengono mai inviati a nessun server. Apri il pannello Network degli Strumenti per Sviluppatori del browser per verificare che nessuna richiesta esterna venga effettuata.