Preskočiť na obsah

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.

Obnoviť

Č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.

O stránke OneClick Pro

OneClick Pro je bezplatná kolekcia viac ako 150 webových nástrojov na každodennú prácu: na konverziu obrázkov a jednotiek, formátovanie a overovanie kódu, kontrolu domén a SEO, ako aj prácu s textom, dátumami a číslami. Každý nástroj funguje bez registrácie alebo predplatného a zadané údaje sa používajú iba na výpočet výsledku a nikdy sa neukladajú. Používajte ich ako rýchlu súpravu nástrojov na jednorazové úlohy alebo si uložte do záložiek nástroje, na ktoré sa spoliehate každý deň.