Generátor a overovač HMAC
Generujte a overujte overovacie kódy správ HMAC pomocou SHA-256, SHA-384, SHA-512 alebo SHA-1 pomocou tajného kľúča úplne vo svojom prehliadači.
Výsledok
HMAC (Hash-based Message Authentication Code) je kľúčovaná kryptografická konštrukcia, ktorá kombinuje tajný kľúč so správou prostredníctvom hašovacej funkcie, ako je SHA-256. Na rozdiel od obyčajného hashu, ktorý môže ktokoľvek prepočítať zo samotnej správy, môže HMAC reprodukovať iba niekto, kto vlastní rovnaký tajný kľúč – to z neho robí autentifikačný kód a nie iba kontrolný súčet.
Toto je zásadný rozdiel od jednoduchého súhrnu: náš vlastný nástroj na generovanie hashov vypočítava nezakľúčované hash ako MD5 alebo SHA-256, ktoré sú skvelé na detekciu náhodného poškodenia, ale nedokazujú nič o tom, kto vytvoril údaje, pretože ktokoľvek môže vygenerovať rovnaký hash. HMAC dokazuje integritu (správa nebola zmenená) aj autenticitu (podpisovateľ poznal zdieľané tajomstvo), a preto je HMAC štandardným stavebným kameňom podpisovania požiadaviek API, algoritmov JWT HS256/HS384/HS512 a autentifikácie záznamov TLS.
Najbežnejším prípadom použitia v reálnom svete je overovanie podpisov webhooku. Služby ako Stripe, GitHub a Shopify podpisujú každý obsah webhooku pomocou HMAC-SHA256 pomocou tajomstva, ktoré nakonfigurujete, a výsledný podpis odosielajú v hlavičke požiadavky. Očakáva sa, že váš server prepočíta HMAC cez nespracované užitočné zaťaženie s rovnakým tajomstvom a porovná ho s hodnotou hlavičky – ak sa zhodujú, viete, že požiadavka skutočne prišla z danej služby a nebola s ňou počas prenosu manipulovaná. Režim overenia tohto nástroja presne reprodukuje túto kontrolu: vložte obsah, zdieľané tajomstvo a prijatý podpis a získajte okamžitú zhodu alebo nesúlad.
Všetko beží lokálne cez natívne webové krypto API prehliadača (crypto.subtle.importKey a crypto.subtle.sign), takže tajný kľúč, telo správy a výsledný podpis nikdy neopustia váš počítač – nič sa neodovzdáva na žiadny server, na čom záleží, pretože tajomstvá HMAC sú presne tou hodnotou, ktorú by ste nikdy nemali vkladať do náhodného online nástroja, ktorý by to mohol zaznamenať.