Pereiti prie turinio

HMAC-SHA256 generatorius

Sukurkite HMAC-SHA256 parašą iš pranešimo ir slaptojo rakto. Įrankis abu duomenis užkoduoja UTF-8 formatu, pagal RFC 2104 taiko HMAC konstrukciją su SHA-256 ir pateikia 256 bitų žymą šešioliktainiu formatu arba Base64. Kūrėjai jį naudoja paslaugų, tokių kaip Stripe, GitHub ar Slack, žiniatinklio kabliukų parašams derinti, API užklausoms pasirašyti ir rezultatams palyginti su savo kodu. Raktas niekada negrąžinamas ir neįrašomas į žurnalą.

Nustatyti iš naujo

Dažnai užduodami klausimai

Kas yra HMAC-SHA256?

HMAC-SHA256 yra pranešimo autentiškumo kodas, sudarytas iš SHA-256 ir slaptojo rakto, kaip apibrėžta RFC 2104. Tik turintis raktą gali apskaičiuoti teisingą pranešimo žymą. Rezultatas yra 32 baitai arba 64 šešioliktainiai simboliai.

Kaip patikrinti žiniatinklio kabliuko parašą?

Į pranešimo lauką įklijuokite tikslų neapdorotos užklausos turinį, o į rakto lauką – pasirašymo slaptąjį raktą, tada palyginkite rezultatą su parašo antrašte. Daugelis paslaugų pasirašo kelių duomenų derinį, pavyzdžiui, Stripe laiko žymą, tašką ir turinį, todėl pranešimą sudarykite taip, kaip nurodyta jų dokumentacijoje. Pakeitus bent vieną baitą, gaunama kita žyma.

Ar yra žinomas kontrolinis vektorius?

RFC 4231 2-ajame bandymo atvejyje naudojamas raktas Jefe ir pranešimas what do ya want for nothing?, o tikėtinas rezultatas yra 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843. Šis įrankis pateikia būtent tokią reikšmę.

Kaip užkoduojamas raktas ir pranešimas?

Abu užkoduojami kaip UTF-8 tekstas. Jei slaptasis raktas pateiktas šešioliktainiu formatu arba Base64 (taip daro kai kurios paslaugos), baitai skiriasi nuo matomo teksto, todėl pirmiausia turite iškoduoti raktą savo kode. Tarpai ir eilučių lūžiai skaičiuojami abiejuose laukuose.

Ar mano slaptasis raktas saugomas?

Ne. Raktas naudojamas tik žymai apskaičiuoti užklausos metu. Jis neįtraukiamas į atsakymą, neįrašomas į žurnalą ir nesaugomas.

Ar raktas gali būti tuščias arba labai ilgas?

HMAC priima bet kokio ilgio raktus, įskaitant tuščią raktą. Ilgesni nei 64 baitų raktai pirmiausia maišomi naudojant SHA-256, kaip nurodyta RFC. Praktiniam naudojimui rinkitės atsitiktinį, bent 32 baitų ilgio raktą.

Ką rinktis – šešioliktainį formatą ar Base64?

Naudokite tą formatą, kurį siunčia kita pusė. GitHub ir Stripe naudoja šešioliktainį formatą, o Slack prieš šešioliktainę reikšmę prideda v0=; daugelis AWS ir JWT pagrindu veikiančių sistemų naudoja Base64. Abiem formatais užkoduojami tie patys 32 baitai.

Ar HMAC-SHA256 yra tas pats, kas sujungti raktą ir pranešimą, o tada apskaičiuoti jų SHA-256 maišą?

Ne. HMAC pranešimo maišą skaičiuoja du kartus, naudodamas vidinius ir išorinius užpildytus raktus; taip apsisaugoma nuo ilgio pratęsimo atakų. Sujungus raktą ir pranešimą bei maišą apskaičiavus vieną kartą, gaunamas kitoks ir silpnesnis rezultatas.

Kaip kode palyginti parašus?

Naudokite pastovaus laiko palyginimo funkciją, pavyzdžiui, crypto.timingSafeEqual sistemoje Node.js arba hmac.compare_digest kalboje Python. Įprastas eilučių palyginimas gali atskleisti informaciją apie tikėtiną žymą pagal vykdymo trukmę.

Kokio dydžio gali būti pranešimas?

Bendras pranešimo ir rakto dydis gali siekti iki 5 MiB teksto. To pakanka įprastiems žiniatinklio kabliukų duomenims ir API užklausoms.

Apie OneClick Pro

OneClick Pro – nemokama kolekcija, kurioje yra daugiau nei 150 žiniatinklio įrankių kasdieniam darbui: vaizdams ir vienetams konvertuoti, kodui formatuoti ir tikrinti, domenams ir SEO tikrinti, taip pat tekstui, datoms ir skaičiams apdoroti. Visi įrankiai veikia be registracijos ar prenumeratos, o jūsų įvesti duomenys naudojami tik rezultatui apskaičiuoti ir niekada neišsaugomi. Naudokite juos kaip greitą įrankių rinkinį vienkartinėms užduotims arba įtraukite į žymes įrankius, kurių prireikia kasdien.