HMAC-generator
HMAC är algoritmen bakom de flesta signerade webhooks, AWS Signature v4-rubriker och JWT HS256-tokens. Ange ett meddelande och en hemlig nyckel, välj en hashfamilj, så skapar generatorn en HMAC exakt enligt RFC 2104 – användbart för att verifiera vad din backend ska skicka eller för att återskapa en signatur du mottagit från ett API.
Så beräknar du en HMAC
-
1
Klistra in meddelandet
De exakta byte som ska signeras – en webhook-payload, en kanonisk begäran eller vilken sträng som helst.
-
2
Ange den hemliga nyckeln
Kan vara text eller hexadecimal. Generatorn fyller ut eller hashar den till blockstorleken enligt RFC.
-
3
Välj hashalgoritmen
SHA-256 är standardvalet; välj istället SHA-1, SHA-384, SHA-512 eller MD5 för kompatibilitet med äldre system.
-
4
Kopiera signaturen
Utdatan är hexadecimal i små bokstäver, redo att klistra in i en webhook-konfiguration eller en auktoriseringsrubrik.
HMAC i kärnan
HMAC omsluter en enkel hashfunktion i en nyckelbaserad konstruktion, så att signaturn inte kan förfalskas utan nyckeln.
RFC 2104-receptet
HMAC(k, m) = H((k' ⊕ opad) ∥ H((k' ⊕ ipad) ∥ m))
där k' är nyckeln som har padats till hashblockstorleken, samt opad = 0x5c repeated och ipad = 0x36 repeated.
Algoritmval
| Algoritm | Blockstorlek | Utdatalängd | Rekommenderas för |
|---|---|---|---|
| HMAC-SHA-256 | 64 byte | 32 byte | Modern standard, signering av webhooks |
| HMAC-SHA-384 | 128 byte | 48 byte | Undertecknande för API med högre säkerhet |
| HMAC-SHA-512 | 128 byte | 64 byte | Långlivade token |
| HMAC-SHA-1 | 64 byte | 20 byte | Äldre version (AWS S3 v2, OAuth 1.0) |
| HMAC-MD5 | 64 byte | 16 byte | Endast för äldre system; undvik användningen i nytt arbete |
Var HMAC visas
- GitHub-, Stripe- och Shopify-webhooks: rubriken
X-Hub-Signature-256,Stripe-Signatureosv. - AWS Signature v4: en kedja av HMAC-SHA256 över den kanoniska begäran.
- JWT HS256: tokensignaturen är
HMAC-SHA-256(header.payload, secret). - Token för lösenordsåterställning: HMAC över user_id + giltighetstid + en webbplatshemlighet.
Vanliga misstag
- Att skicka en hexkodad nyckel som text istället för att först avkoda den till byte.
- Att signera fel payload-byte: vissa webhooks signerar den råa begärankroppen inklusive blanksteg, medan andra signerar en kanonisk form.
- Att använda
==i JavaScript eller Python för att jämföra signaturer; använd alltid en tidssäker jämförelse för att motverka tidsbaserade attacker.
Vanliga frågor
Nästan alltid beror det på att meddelandets byte skiljer sig åt. Att signera den JSON-parsade kroppen leder till förändringar i blanksteg; signera istället den råa begärankroppen. Kontrollera också att nyckeln avkodas på samma sätt (hexadecimalt eller som råa byte) på båda sidor.
Ja. Om nyckeln är kortare än storleken på hashblocket kompletteras den med nollar; om den är längre hashas den först. RFC 2104 rekommenderar att nycklarna är minst lika långa som utdata (32 byte för SHA-256).
HMAC är fortfarande motståndskraftigt mot kända MD5-kollisioner, eftersom dessa attacker inte påverkar hur HMAC byggs upp. Använd dock HMAC-SHA-256 i all ny kod – både utvecklare och granskare förväntar sig detta.
Ja. Meddelandet och den hemliga nyckeln skickas till vår server via en krypterad HTTPS-anslutning för att HMAC ska kunna beräknas. De används endast för beräkningen och lagras eller loggas inte.
Relaterade verktyg
Base64-filencoder
Koda valfri fil (PDF, ZIP, bild, körbar fil) till Base64-text för inbäddning i JSON, e-post, YAML eller data-URI:er. Körs lokalt, ingen uppladdning.
SSL-certifikatgenerator
Generera ett självsignerat SSL/TLS-certifikat och en privat RSA-nyckel helt i webbläsaren. Eget Common Name, SAN och giltighet, exporterat som PEM.
Base58-kodare och avkodare
Koda UTF-8-text eller hexadecimala byte och avkoda Base58 säkert med alfabetet för Bitcoin, Ripple eller Flickr.
Chifferidentifierare
Klistra in chiffertext så föreslår identifieraren troliga kodnings-/chifferscheman: Base64, hex, binärt, morsekod, Caesar eller substitution, JWT och vanliga hashvärden.
Krypteringsidentifierare
Klistra in en krypterad text eller ett hashvärde; identifieraren visar sannolika algoritmer eller kodningsformer: MD5, SHA, bcrypt, AES, RSA, Base64 med flera.
A1Z26-chifferkodare
Koda text med A1Z26-chiffret (A=1, B=2, ... Z=26) eller avkoda en siffersekvens tillbaka till bokstäver, med anpassningsbar separator.
Verktyget finns på andra språk
- Gerador de HMAC [PT]
- Bộ tạo HMAC [VI]
- Generador de HMAC [ES]
- HMACジェネレーター [JA]
- مولّد HMAC [AR]
- Générateur HMAC [FR]
- HMAC-Generator [DE]
- ตัวสร้าง HMAC [TH]
- HMAC 생성기 [KO]
- HMAC-generator [NL]
- HMAC Generator [ID]
- Generator HMAC [PL]
- Генератор HMAC [RU]
- HMAC Jeneratörü [TR]
- HMAC 生成器 [ZH]
- HMAC Generator [EN]
- Generatore HMAC [IT]