Generatore di firme HMAC per webhook
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.
Esegui gratis nel browser
Funziona nel tuo browser: gratis, senza registrazione, i file non escono dal tuo dispositivo.
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.
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.
Un uso concreto: proteggersi da webhook falsi
Chiunque conosca l'URL del tuo endpoint può mandarti richieste che sembrano webhook legittimi, anche senza conoscere la chiave segreta usata per firmarli davvero. 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.
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 d'uso
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.
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.
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 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. Serve solo per l'uso via API, e anche lì si acquista direttamente, senza registrazione.
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.
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 '{"input":"…"}'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({
"input": "…"
})
});
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={
"input": "…"
},
)
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" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
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
{
"input": "…"
}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. |