Generatore di firme HMAC per webhook
Un falso evento di pagamento riuscito o un aggiornamento d'ordine contraffatto arrivano facilmente a un servizio che si fida di tutto: firmi le notifiche in uscita con un segreto condiviso e verifichi quelle in entrata, che risultano valide, alterate o scadute. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Funziona nel tuo browser: gratis, senza registrazione, i file non escono dal tuo dispositivo.
gratis, nel browser
Il problema di fidarsi di qualsiasi messaggio
Un servizio che accetta come vero qualsiasi messaggio in arrivo può essere ingannato da chiunque: un falso evento di pagamento riuscito, un aggiornamento d'ordine contraffatto o la ripetizione di un messaggio intercettato. Dal lato di chi invia succede il contrario: senza una firma da mostrare, un partner può negare di aver mai ricevuto un evento da lei, e la richiesta di assistenza resta senza modo di essere chiusa. Firmare ciò che esce e verificare ciò che entra permette a entrambe le parti di dimostrare che cosa è stato inviato davvero e che nulla è cambiato lungo il percorso. Fidarsi del contenuto senza controlli non regge più da quando queste notifiche sostengono pagamenti e ordini.
Due direzioni con un solo strumento
Per inviare, indichi il contenuto e il segreto condiviso: otterrà una firma da aggiungere alle intestazioni del messaggio prima della consegna, come l'intestazione KIT-Signature dell'esempio. Per ricevere, indichi il messaggio arrivato e la firma che lo accompagnava: lo strumento li confronta e le dice se è valido, alterato o scaduto. Tenga presente che firmare non significa cifrare; il contenuto resta leggibile e la firma prova soltanto chi lo ha inviato e che non è cambiato dopo la firma. La scelta prudente è verificare prima di elaborare e scartare ciò che non passa prima che raggiunga la logica della sua attività.
Perché la chiave non esce dal browser
La chiave segreta è, appunto, segreta: questo strumento la elabora interamente nel browser, non la invia a nessun server per calcolare la firma. È il motivo per cui è gratis e senza limiti — non c'è un server che deve fare quel calcolo al posto tuo, quindi non c'è nemmeno un rischio di trasmissione della chiave a terzi durante il calcolo.
Casi d'uso
Firmare le richieste verso un partner
Un'azienda che invia dati a un partner deve firmare ogni richiesta con HMAC secondo le regole del partner. Calcolare la firma qui, durante lo sviluppo, evita di scrivere codice di test solo per capire se l'algoritmo è quello giusto.
Domande frequenti
È sicuro incollare qui la mia chiave segreta?
Il calcolo avviene interamente nel browser: la chiave non viene inviata a nessun server. È lo stesso motivo per cui è gratis — non serve un'infrastruttura che la riceva.
Che algoritmi supporta?
HMAC con SHA-256 (il più usato oggi da provider di pagamento e piattaforme di messaggistica) e SHA-1, per compatibilità con integrazioni più vecchie.
Devo registrarmi per usarlo?
No, il modo gratis nel browser non richiede account.
Da che cosa protegge firmare le notifiche di eventi?
Da chi si spaccia per un partner fidato: un falso pagamento riuscito, un aggiornamento d'ordine inventato o la ripetizione di un messaggio intercettato. E quando invia, la firma le permette di dimostrare che l'evento è partito da lei se un partner lo contesta.
Firmare è come cifrare?
No. La firma non nasconde il contenuto, che resta leggibile; dimostra chi lo ha inviato e che non è cambiato dopo la firma, usando un segreto condiviso e un'impronta crittografica del messaggio.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/dev/webhook-sign \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"payload":{"event":"ping"},"secret":"whsec_123"}'const res = await fetch("https://api.kit.forhosting.com/dev/webhook-sign", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"payload": {
"event": "ping"
},
"secret": "whsec_123"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/webhook-sign",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"payload": {
"event": "ping"
},
"secret": "whsec_123"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/webhook-sign", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"payload":{"event":"ping"},"secret":"whsec_123"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"payload":{"event":"ping"},"secret":"whsec_123"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/webhook-sign", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"payload": {
"event": "ping"
},
"secret": "whsec_123"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.webhook_sign",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Uno strumento che calcola la firma HMAC di un payload di webhook — per firmarlo prima di inviarlo o per verificare che uno ricevuto sia autentico. Utile a chi espone o consuma webhook e deve garantire che il messaggio non sia stato alterato lungo il percorso.
Firmare in uscita, verificare in entrata
Incolli il payload JSON e la chiave segreta condivisa: lo strumento calcola la firma HMAC (SHA-256 o SHA-1, a scelta) da inviare nell'intestazione della richiesta. Per verificare un webhook ricevuto, funziona al contrario: incolli payload, chiave e firma ricevuta, e ti dice subito se corrispondono oppure se qualcosa è stato alterato lungo il percorso prima di arrivare al tuo server.
Un uso concreto: proteggersi da webhook falsi
Verificare la firma prima di elaborare l'evento è la difesa standard: se la firma calcolata non coincide con quella ricevuta nell'intestazione, scarti la richiesta senza nemmeno guardarne il contenuto o eseguire alcuna azione collegata a quell'evento sospetto. Chiunque conosca l'URL del tuo endpoint può mandarti richieste che sembrano webhook legittimi, anche senza conoscere la chiave segreta usata per firmarli davvero.
Se ti serve dentro un flusso automatico
Il modo gratis è pensato per verifiche manuali o per generare firme di test durante lo sviluppo quotidiano, quando basta un controllo occasionale sul singolo evento. Se la firma deve essere calcolata automaticamente per ogni evento dentro un'automazione, senza intervento umano, lo stesso calcolo è disponibile via API, a $0.002 a evento firmato o verificato, senza abbonamento né costi fissi.
Casi di integrazione
Verificare un webhook prima di fidarsi
Uno sviluppatore che integra i pagamenti per Tecnoedil Verona riceve un evento e vuole essere sicuro che venga davvero dal servizio di pagamento e non da un tentativo di frode. Verifica la firma qui prima di scrivere il codice che elabora l'evento in produzione.
Debug di un'integrazione che rifiuta la firma
Quando un sistema esterno rifiuta sistematicamente la firma inviata, ricalcolarla qui con lo stesso payload e la stessa chiave aiuta a capire se il problema è l'algoritmo, l'ordine dei campi o la codifica del testo.
Domande tecniche
Quanto costa la versione API?
$0.002 a evento firmato o verificato, senza abbonamento. Il modo browser resta gratis e senza limiti per l'uso manuale.
Posso verificare firme di provider diversi?
Sì, purché ti dicano l'algoritmo e come costruiscono il messaggio da firmare (a volte è il payload puro, a volte payload più timestamp): con questi dati lo strumento replica il calcolo.
Funziona anche per firmare webhook che invio io?
Sì, il calcolo è lo stesso nei due sensi: firmare prima di inviare o verificare dopo aver ricevuto usano la stessa formula HMAC.