Přeskočit na obsah
TextArray
100% lokálně

Generátor HMAC

Vypočítejte podpisy HMAC-SHA256, SHA-1, SHA-384 nebo SHA-512 s tajným klíčem.

Vstup
Výstup

Generátor HMAC

HMAC je hash s klíčem: zpráva a tajný klíč vstupují do výpočtu společně a zopakovat či ověřit výsledek dokáže jen ten, kdo má stejný klíč. Přesně tím podepisují poskytovatelé API své požadavky a odesílatelé webhooků — platební platformy nebo služby pro hostování kódu — každé doručení, aby příjemce uměl doložit, že payload opravdu přišel od nich a cestou se nezměnil.

Zadejte tajný klíč, vyberte algoritmus, který používá druhá strana — drtivou výchozí volbou je SHA-256 — a vložte zprávu. Výsledek se zobrazí jako malé hex znaky nebo jako Base64, tedy ve dvou formátech, ve kterých se podpisy vyměňují. Zapněte HMAC pro každý řádek a každý vstupní řádek se podepíše zvlášť, což se hodí na sloupec tokenů či identifikátorů. Vývojáři po nástroji sahají při ladění webhook handleru, který odmítá podpisy, při reprodukci příkladu z dokumentace nebo při výrobě testovacího vektoru do unit testu.

Klíč i zpráva se berou jako UTF-8 bajty, přesně jako ve většině serverových SDK. Když se váš výsledek neshoduje s druhou stranou, příčinou jsou téměř vždy bajty, ne matematika: znak nového řádku na konci payloadu, konce řádků CRLF, hex porovnaný s Base64, nebo klíč, který služba vydává zakódovaný v Base64 či hexu a před použitím ho čeká dekódovaný.

Pole klíče je maskované a záměrně se nikdy nezapisuje do úložiště prohlížeče. Všechno běží lokálně přes vestavěné WebCrypto — vložením podpisového tajemství do online HMAC nástroje ho běžně předáte cizímu serveru, tady ale nikdy neopustí vaše zařízení.

Časté dotazy

K čemu se HMAC používá?
K důkazu, že zpráva pochází od někoho se sdíleným tajemstvím a cestou se nezměnila. Typická použití: podepisování API požadavků, ověřování webhooků od platebních a hostingových platforem a podepisování tokenů. Příjemce HMAC přepočítá se stejným klíčem a porovná.
Čím se HMAC liší od obyčejného hashe?
Obyčejné SHA-256 zprávy si spočítá kdokoli, o odesílateli tedy nedokazuje nic. HMAC přimíchá do výpočtu tajný klíč způsobem odolným proti manipulaci — bez klíče platný podpis nezfalšujete ani neověříte. I proto zůstává HMAC-SHA1 v praxi přijatelné, přestože samotné SHA-1 je prolomené na kolize; nové návrhy by ale měly volit SHA-256.
Proč se můj HMAC neshoduje s tím ze serveru?
Téměř vždy se liší bajty. Zkontrolujte znak nového řádku na konci payloadu, konce řádků CRLF versus LF, hex porovnaný s Base64 a formát klíče — mnohé služby vydávají tajemství zakódované v Base64 či hexu a jako klíč čekají dekódované bajty. Tento nástroj použije klíč přesně tak, jak je napsán, v UTF-8.
Dá se z HMAC získat můj klíč?
Žádný praktický útok klíč z podpisů nezíská. Kdokoli s klíčem ale umí podepsat libovolnou zprávu, takže s podpisovými tajemstvími zacházejte jako s hesly: tajemství webhooku po možném úniku vyměňte a nikdy ho neukládejte do repozitáře.
Nahrává se můj klíč nebo text někam?
Ne. HMAC počítá vestavěné WebCrypto vašeho prohlížeče, pole klíče se nikdy nezapisuje do úložiště a klíč ani text nikdy neopustí vaše zařízení.