# Generátor HMAC-SHA256

Vytvorte podpis HMAC-SHA256 zo správy a tajného kľúča. Nástroj zakóduje oboje ako UTF-8, použije konštrukciu HMAC podľa RFC 2104 s SHA-256 a vráti 256-bitový tag v hexadecimálnom formáte alebo Base64. Vývojári ho používajú na ladenie podpisov webhookov zo služieb ako Stripe, GitHub alebo Slack, na podpisovanie požiadaviek API a porovnávanie výsledkov s vlastným kódom. Kľúč sa nikdy nevracia ani nezaznamenáva.

## Často kladené otázky

### Čo je HMAC-SHA256?

HMAC-SHA256 je kód na overenie správy vytvorený pomocou SHA-256 a tajného kľúča podľa definície v RFC 2104. Správny tag správy dokáže vypočítať iba niekto, kto pozná kľúč. Výsledok má 32 bajtov alebo 64 hexadecimálnych znakov.

### Ako overím podpis webhooku?

Vložte presné surové telo požiadavky ako správu a svoj podpisový tajný kľúč ako kľúč, potom výsledok porovnajte s hlavičkou podpisu. Mnohé služby podpisujú kombináciu, napríklad časovú značku Stripe, bodku a telo požiadavky, preto správu zostavte podľa ich dokumentácie. Jediný zmenený bajt vytvorí iný tag.

### Existuje známy testovací vektor?

Testovací prípad 2 v RFC 4231 používa kľúč Jefe a správu what do ya want for nothing? a očakáva hodnotu 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843. Tento nástroj vráti presne túto hodnotu.

### Ako sa kľúč a správa kódujú?

Oboje sa kóduje ako text UTF-8. Ak je vaše tajomstvo zadané v hexadecimálnom formáte alebo ako Base64, ako to robia niektoré služby, bajty sa líšia od zobrazeného textu a kľúč musíte najprv dekódovať vo vlastnom kóde. Medzery a zalomenia riadkov sa započítavajú v oboch poliach.

### Ukladá sa môj tajný kľúč?

Nie. Kľúč sa použije iba na výpočet tagu počas spracovania požiadavky. Neuvádza sa v odpovedi, nezaznamenáva sa ani neukladá.

### Môže byť kľúč prázdny alebo veľmi dlhý?

HMAC prijíma kľúče ľubovoľnej dĺžky vrátane prázdneho kľúča. Kľúče dlhšie ako 64 bajtov sa najprv hashujú pomocou SHA-256, ako stanovuje RFC. Na skutočné použitie si zvoľte náhodný kľúč s dĺžkou aspoň 32 bajtov.

### Mám zvoliť hexadecimálny formát alebo Base64?

Použite formát, ktorý používa druhá strana. GitHub a Stripe používajú hexadecimálny formát, zatiaľ čo Slack pridáva pred hexadecimálnu hodnotu v0= a mnohé systémy založené na AWS a JWT používajú Base64. Oba formáty kódujú rovnakých 32 bajtov.

### Je HMAC-SHA256 to isté ako hash SHA-256 kľúča a správy spojenej dohromady?

Nie. HMAC hashujú správu dvakrát pomocou vnútorne a zvonka doplnených kľúčov, čím chráni pred útokmi predĺžením dĺžky. Spojením kľúča a správy a jednorazovým hashovaním získate iný a menej bezpečný výsledok.

### Ako mám v kóde porovnávať podpisy?

Použite funkciu na porovnávanie v konštantnom čase, napríklad crypto.timingSafeEqual v Node.js alebo hmac.compare_digest v Pythone. Bežné porovnanie reťazcov môže prezradiť informácie o očakávanom tage prostredníctvom času spracovania.

### Aká veľká môže byť správa?

Správa a kľúč môžu mať spolu až 5 MiB textu. To stačí na typické dátové obsahy webhookov a požiadavky API.

Vaša reklama tu?

[Napíšte nám e-mail](mailto:hi@dennn.is?subject=Reklama%20na%20OneClick%20Pro)

[Reklama Súprava doplnkov pripravená pre agentov pre WordPress.](https://sleekwp.com/?ref=oneclickpro)
