Ugrás a tartalomhoz
TextArray
100% helyi

HMAC generátor

Számíts HMAC-SHA256, SHA-1, SHA-384 vagy SHA-512 aláírást titkos kulccsal.

Bemenet
Kimenet

HMAC generátor

A HMAC kulcsos hash: az üzenet és a titkos kulcs együtt kerül a számításba, és az eredményt csak az tudja megismételni vagy ellenőrizni, akinél ugyanaz a kulcs van. Pontosan ezzel írják alá az API-szolgáltatók a kéréseket, és ezt csatolják a webhook-küldők — fizetési platformok, kódtároló szolgáltatások — minden kézbesítéshez, hogy a fogadó bizonyíthassa: az adat tényleg tőlük jött, és útközben nem változott meg.

Add meg a titkos kulcsot, válaszd ki a másik oldal algoritmusát — a SHA-256 a messze leggyakoribb alapértelmezés —, és illeszd be az üzenetet. A lenyomat kisbetűs hexként vagy Base64-ként jelenik meg, vagyis abban a két formátumban, amelyben az aláírásokat cserélik. Kapcsold be a soronkénti HMAC-et, és minden bemeneti sor külön aláírást kap — tokenek vagy azonosítók oszlopához való. A fejlesztők akkor nyúlnak érte, amikor egy aláírásokat elutasító webhook-kezelőt hibakeresnek, egy dokumentációs példát számolnak újra, vagy tesztvektort készítenek egy unit teszthez.

A kulcs és az üzenet egyaránt UTF-8 bájtokként számít, pontosan úgy, ahogy a legtöbb szerveroldali SDK-ban. Ha az eredményed nem egyezik a másik oldallal, az ok szinte mindig a bájtokban van, nem a matematikában: záró soremelés a tartalom végén, CRLF sorvégek, hex összevetve Base64-gyel, vagy olyan kulcs, amelyet a szolgáltatás Base64- vagy hex-kódolva ad ki, és használat előtt dekódolva vár.

A kulcsmező maszkolt, és szándékosan soha nem kerül a böngésző tárolójába. Minden helyben fut a beépített WebCrypto-n keresztül — egy aláírókulcs beillesztése egy online HMAC eszközbe általában át is adja azt a szervernek; itt soha nem hagyja el az eszközödet.

Gyakori kérdések

Mire való a HMAC?
Annak bizonyítására, hogy az üzenet a közös titok birtokosától származik, és útközben nem módosult. Tipikus felhasználás: API-kérések aláírása, fizetési és hosting platformok webhook-kézbesítéseinek ellenőrzése, tokenek aláírása. A fogadó ugyanazzal a kulccsal újraszámolja a HMAC-et és összehasonlítja.
Miben különbözik a HMAC a sima hashtől?
Egy üzenet sima SHA-256-ját bárki kiszámolhatja, a feladóról tehát semmit sem bizonyít. A HMAC a titkos kulcsot manipulációnak ellenálló módon keveri a számításba — kulcs nélkül érvényes aláírást sem hamisítani, sem ellenőrizni nem lehet. Részben ezért marad a HMAC-SHA1 a gyakorlatban elfogadható, noha a sima SHA-1 ütközésekre megtört; új rendszerekhez azért válassz SHA-256-ot.
Miért nem egyezik a HMAC-em a szerverével?
Szinte mindig a bájtok térnek el. Ellenőrizd a tartalom végi soremelést, a CRLF és LF sorvégeket, a hex és a Base64 összekeverését, valamint a kulcs formátumát — sok szolgáltatás Base64- vagy hex-kódolva adja ki a titkot, és kulcsként a dekódolt bájtokat várja. Ez az eszköz a kulcsot pontosan úgy használja, ahogy beírtad, UTF-8-ként.
Visszafejthető a kulcsom egy HMAC-ből?
Nincs gyakorlati támadás, amely a lenyomatokból visszanyerné a kulcsot. Viszont bárki, akinél a kulcs van, tetszőleges üzenetet aláírhat — a aláírókulcsokat ezért kezeld jelszóként: szivárgás gyanúja esetén cseréld le a webhook-titkot, és soha ne tedd repositoryba.
Feltöltődik valahová a kulcsom vagy a szövegem?
Nem. A HMAC-et a böngésződbe épített WebCrypto számolja, a kulcsmező soha nem kerül a tárolóba, és sem a kulcs, sem a szöveg nem hagyja el az eszközödet.