Ugrás a tartalomhoz

HMAC-SHA256-generátor

Hozzon létre HMAC-SHA256 aláírást egy üzenetből és egy titkos kulcsból. Az eszköz mindkettőt UTF-8 formátumúra kódolja, alkalmazza az RFC 2104 szerinti HMAC-eljárást SHA-256 használatával, majd az 256 bites címkét hexadecimális vagy Base64 formátumban adja vissza. A fejlesztők webhook-aláírások hibakeresésére használják olyan szolgáltatásoknál, mint a Stripe, a GitHub vagy a Slack, API kérések aláírására, illetve az eredmények saját kóddal való összehasonlítására. A kulcsot az eszköz soha nem adja vissza és nem naplózza.

Visszaállítás

Gyakran ismételt kérdések

Mi az a HMAC-SHA256?

A HMAC-SHA256 egy SHA-256-ből és egy titkos kulcsból felépülő üzenethitelesítő kód, az RFC 2104 meghatározása szerint. Csak az tudja kiszámítani az üzenet helyes címkéjét, aki ismeri a kulcsot. Az eredmény 32 bájt, azaz 64 hexadecimális karakter.

Hogyan ellenőrizhetek egy webhook-aláírást?

Illessze be az eredeti kérés törzsét változtatás nélkül üzenetként, az aláíró titkot pedig kulcsként, majd hasonlítsa össze az eredményt az aláírás fejlécével. Sok szolgáltatás több értékből álló üzenetet ír alá, például a Stripe időbélyegét, egy pontot és a törzset, ezért a szolgáltatás dokumentációja szerint állítsa össze az üzenetet. Egyetlen megváltozott bájt is más címkét eredményez.

Létezik ismert tesztvektor?

Az RFC 4231 2. tesztesete a Jefe kulcsot és a what do ya want for nothing? üzenetet használja, az elvárt eredmény pedig 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843. Ez az eszköz pontosan ezt az értéket adja vissza.

Hogyan kódolja a rendszer a kulcsot és az üzenetet?

Mindkettő UTF-8 szövegként kerül kódolásra. Ha a titok hexadecimális formában vagy Base64 formátumban van megadva, ahogyan egyes szolgáltatásoknál, a bájtok eltérnek a látható szövegtől, ezért előbb a saját kódjában kell dekódolnia a kulcsot. Mindkét mezőben számítanak a szóközök és a sortörések.

Tárolja a rendszer a titkos kulcsomat?

Nem. A kulcsot csak a kérés feldolgozása közben használjuk a címke kiszámításához. Nem kerül bele a válaszba, nem naplózzuk és nem tároljuk.

Lehet üres vagy nagyon hosszú a kulcs?

A HMAC bármilyen hosszúságú kulcsot elfogad, az üres kulcsot is beleértve. A 64 bájtnál hosszabb kulcsokat először hash-eljük a SHA-256 használatával, az RFC előírása szerint. Éles használathoz válasszon legalább 32 bájtos véletlenszerű kulcsot.

A hexadecimális vagy a Base64 formátumot válasszam?

Használja azt a formátumot, amelyet a másik fél küld. A GitHub és a Stripe hexadecimális formátumot használ, míg a Slack a v0= előtagot illeszti a hexadecimális érték elé, és sok AWS-alapú, illetve JWT-alapú rendszer Base64 formátumot használ. Mindkettő ugyanazt a 32 bájtot kódolja.

A HMAC-SHA256 ugyanaz, mint a kulcs és az üzenet összefűzésének SHA-256-je?

Nem. A HMAC belső és külső, kitöltött kulcsokkal kétszer hash-eli az üzenetet, így véd a hosszabbításos támadások ellen. A kulcs és az üzenet összefűzése, majd egyszeri hash-elése más és gyengébb eredményt ad.

Hogyan hasonlítsam össze az aláírásokat a kódomban?

Használjon konstans idejű összehasonlító függvényt, például a crypto.timingSafeEqual függvényt Node.js nyelven vagy a hmac.compare_digest függvényt Pythonban. A normál karakterlánc-összehasonlítás időzítési információt szivárogtathat ki az elvárt címkéről.

Mekkora lehet az üzenet?

Az üzenet és a kulcs együtt legfeljebb 5 MiB szöveg lehet. Ez a méret a tipikus webhook-tartalmakat és a API kéréseket is lefedi.

A OneClick Pro névjegye

A OneClick Pro több mint 150 webes eszközből álló, ingyenes gyűjtemény a mindennapi munkához: képek és mértékegységek átalakításához, kód formázásához és ellenőrzéséhez, domainek és SEO ellenőrzéséhez, valamint szövegekkel, dátumokkal és számokkal végzett munkához. Minden eszköz regisztráció és előfizetés nélkül használható; a megadott adatokat kizárólag az eredmény kiszámításához használjuk, és soha nem tároljuk. Használja gyors eszköztárként az alkalmi feladatokhoz, vagy mentse el könyvjelzőként a mindennap használt eszközöket.