# HMAC-SHA256-generator

Skapa en HMAC-SHA256-signatur från ett meddelande och en hemlig nyckel. Verktyget kodar båda som UTF-8, tillämpar HMAC-konstruktionen från RFC 2104 med SHA-256 och returnerar taggen på 256 bit i hex eller Base64. Utvecklare använder verktyget för att felsöka webhook-signaturer från tjänster som Stripe, GitHub eller Slack, signera API-begäranden och jämföra resultaten med sin egen kod. Nyckeln returneras eller loggas aldrig.

## Vanliga frågor

### Vad är HMAC-SHA256?

HMAC-SHA256 är en meddelandeautentiseringskod som bygger på SHA-256 och en hemlig nyckel, enligt definitionen i RFC 2104. Bara den som har nyckeln kan beräkna rätt tagg för ett meddelande. Resultatet är 32 byte, eller 64 hextecken.

### Hur verifierar jag en webhook-signatur?

Klistra in den exakta råa begärandekroppen som meddelande och din signeringshemlighet som nyckel. Jämför sedan resultatet med signaturhuvudet. Många tjänster signerar en kombination, till exempel Stripes tidsstämpel, en punkt och kroppen, så skapa meddelandet enligt tjänstens dokumentation. En enda ändrad byte ger en annan tagg.

### Finns det någon känd testvektor?

Testfall 2 i RFC 4231 använder nyckeln Jefe och meddelandet what do ya want for nothing? och förväntar sig resultatet 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843. Det här verktyget returnerar exakt det värdet.

### Hur kodas nyckeln och meddelandet?

Båda kodas som UTF-8-text. Om din hemlighet anges i hex eller Base64, som vissa tjänster gör, skiljer sig byten från texten du ser, och du måste först avkoda nyckeln i din egen kod. Blanksteg och radbrytningar räknas i båda fälten.

### Sparas min hemliga nyckel?

Nej. Nyckeln används bara för att beräkna taggen under begäran. Den ingår inte i svaret, loggas inte och sparas inte.

### Kan nyckeln vara tom eller mycket lång?

HMAC godtar nycklar av alla längder, även en tom nyckel. Nycklar som är längre än 64 byte hashberäknas först med SHA-256, enligt RFC-specifikationen. För verklig användning bör du välja en slumpmässig nyckel på minst 32 byte.

### Bör jag välja hex eller Base64?

Använd det format som den andra parten skickar. GitHub och Stripe använder hex, medan Slack har hex med prefixet v0= och många system baserade på AWS och JWT använder Base64. Båda kodar samma 32 byte.

### Är HMAC-SHA256 samma sak som SHA-256 av den sammanfogade nyckeln och meddelandet?

Nej. HMAC hashberäknar meddelandet två gånger med inre och yttre utfyllnadsnycklar, vilket skyddar mot attacker med längdutökning. Om du sammanfogar nyckeln och meddelandet och hashberäknar en gång får du ett annat och svagare resultat.

### Hur bör jag jämföra signaturer i min kod?

Använd en funktion för jämförelse i konstant tid, till exempel crypto.timingSafeEqual i Node.js eller hmac.compare_digest i Python. En vanlig strängjämförelse kan läcka tidsinformation om den förväntade taggen.

### Hur stort kan meddelandet vara?

Meddelandet och nyckeln får tillsammans innehålla upp till 5 MiB text. Det täcker vanliga webhook-payloads och API-begäranden.

Vill du annonsera här?

[Mejla oss](mailto:hi@dennn.is?subject=Annonsera%20p%C3%A5%20OneClick%20Pro)

[Annons Pluginpaketet för agenter för WordPress.](https://sleekwp.com/?ref=oneclickpro)
