Liigu sisu juurde

HMAC-SHA256 generaator

Looge sõnumist ja salajasest võtmest HMAC-SHA256-allkiri. Tööriist kodeerib mõlemad UTF-8-na, rakendab RFC 2104 HMAC-konstruktsiooni koos SHA-256-ga ning tagastab 256-bitise märgendi kuueteistkümnendkujul või Base64-na. Arendajad kasutavad seda teenuste, näiteks Stripe'i, GitHub või Slack veebikonksu allkirjade silumiseks, API-päringute allkirjastamiseks ning tulemuste võrdlemiseks oma koodiga. Võtit ei tagastata ega logita kunagi.

Lähtesta

Korduma kippuvad küsimused

Mis on HMAC-SHA256?

HMAC-SHA256 on sõnumi autentimiskood, mis põhineb SHA-256-l ja salajasel võtmel, nagu on määratletud RFC-s 2104. Ainult võtme omanik saab sõnumi jaoks õige märgendi arvutada. Tulemus on 32 baiti ehk 64 kuueteistkümnendmärki.

Kuidas veebikonksu allkirja kontrollida?

Kleepige sõnumiks päringu täpne toorsisu ja võtmeks allkirjastamise saladus, seejärel võrrelge tulemust allkirjapäisega. Paljud teenused allkirjastavad kombinatsiooni, näiteks Stripe'i ajatempli, punkti ja sisu, seega koostage sõnum dokumentatsioonis kirjeldatud viisil. Ühe baidi muutmine annab teistsuguse märgendi.

Kas on olemas teadaolev testvektor?

RFC 4231 testjuht 2 kasutab võtit Jefe ja sõnumit what do ya want for nothing? ning eeldatav tulemus on 5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843. See tööriist tagastab täpselt selle väärtuse.

Kuidas võti ja sõnum kodeeritakse?

Mõlemad kodeeritakse UTF-8 tekstina. Kui saladus on antud kuueteistkümnendkujul või Base64-na, nagu mõned teenused teevad, erinevad baidid nähtavast tekstist ja peate võtme oma koodis esmalt dekodeerima. Mõlema välja tühikud ja reavahetused lähevad arvesse.

Kas mu salajane võti salvestatakse?

Ei. Võtit kasutatakse päringu ajal ainult märgendi arvutamiseks. Seda ei lisata vastusesse, ei logita ega salvestata.

Kas võti võib olla tühi või väga pikk?

HMAC aktsepteerib mis tahes pikkusega võtmeid, sealhulgas tühja võtit. RFC kohaselt räsitakse üle 64 baidi pikkused võtmed esmalt SHA-256-ga. Tegelikuks kasutuseks valige juhuslik võti, mis on vähemalt 32 baiti pikk.

Kas valida kuueteistkümnendkuju või Base64?

Kasutage vormingut, mida teine pool saadab. GitHub ja Stripe kasutavad kuueteistkümnendkuju, Slack lisab kuueteistkümnendkuju ette v0= ning paljud AWS- ja JWT-põhised süsteemid kasutavad Base64-i. Mõlemad kodeerivad samad 32 baiti.

Kas HMAC-SHA256 on sama mis võtme ja sõnumi ühendatud kujul SHA-256?

Ei. HMAC räsib sõnumit kaks korda, kasutades sisemist ja välimist polsterdatud võtit, mis kaitseb pikkuse laiendamise rünnete eest. Võtme ja sõnumi ühendamine ning ühekordne räsimine annab teistsuguse ja nõrgema tulemuse.

Kuidas peaksin oma koodis allkirju võrdlema?

Kasutage konstantse ajaga võrdlusfunktsiooni, näiteks crypto.timingSafeEqual Node.js-is või hmac.compare_digest Pythonis. Tavaline stringide võrdlus võib eeldatava märgendi kohta ajastusteavet lekkida.

Kui suur võib sõnum olla?

Sõnumi ja võtme kogumaht võib olla kuni 5 MiB teksti. Sellest piisab tüüpiliste veebikonksu andmesisude ja API-päringute jaoks.

Teave OneClick Pro kohta

OneClick Pro on tasuta kollektsioon, mis sisaldab üle 150 veebitööriista igapäevatööks: piltide ja ühikute teisendamiseks, koodi vormindamiseks ja valideerimiseks, domeenide ja SEO kontrollimiseks ning teksti, kuupäevade ja numbritega töötamiseks. Kõik tööriistad toimivad ilma registreerimise või tellimuseta ning sisestatut kasutatakse ainult tulemuse arvutamiseks ega salvestata kunagi. Kasutage seda kiire tööriistakastina ühekordsete ülesannete jaoks või lisage järjehoidjatesse tööriistad, mida iga päev kasutate.