Gineadóir HMAC
Ríomh HMAC-SHA1, SHA-256, SHA-384 nó SHA-512 le heochair téacs, heics nó Base64, faigh aschur heics agus Base64, agus seiceáil síniú webhook i do bhrabhsálaí.
Sínítear an teachtaireacht díreach mar a clóscríobhadh í, ionchódaithe mar UTF-8, spásanna agus bristeacha líne san áireamh.
- HMAC (heics)
- HMAC (Base64)
- Ceanntásc síniú webhook (stíl GitHub)
Ritheann an chomparáid in am seasta, mar ba cheart do fhreastalaí é a dhéanamh, ionas nach nochtann an t-am a thógtar cé mhéad carachtar a mheaitseálann.
Conas HMAC a ríomh
- Greamaigh an Teachtaireacht. Do webhook, caithfidh sé seo a bheith ar chorp amh an iarratais, beart ar bheart.
- Cuir isteach an Eochair rúnda agus roghnaigh a Formáid na heochrach: Téacs (UTF-8), Heicsidheachúlach nó Base64.
- Roghnaigh an Algartam: HMAC-SHA1, HMAC-SHA256, HMAC-SHA384 nó HMAC-SHA512.
- Nuashonraítear an toradh agus tú ag clóscríobh; is féidir leat Gin HMAC a chliceáil freisin. Faigheann tú an HMAC (heics), an HMAC (Base64) agus Ceanntásc síniú webhook (stíl GitHub), agus cnaipe Cóipeáil ag gach ceann.
- Chun síniú a fuair tú a sheiceáil, greamaigh in Compháirigh le síniú a bhfuiltear ag súil leis (heics, Base64 nó sha256=…) é. Deir an uirlis an meaitseálann sé.
Ionchódaítear an teachtaireacht mar UTF-8 díreach mar a clóscríobhadh í, spásanna agus bristeacha líne san áireamh. Úsáideann an ríomh API Web Crypto do bhrabhsálaí; ní fhágann an teachtaireacht ná an eochair do ghléas riamh.
Cad is HMAC ann
Cuireann HMAC (hash-based message authentication code, RFC 2104) eochair rúnda le feidhm haise:
HMAC(K, m) = H((K′ ⊕ opad) ‖ H((K′ ⊕ ipad) ‖ m))
áit arb é K′ an eochair líonta go méid bloic na haise (haiseáilte ar dtús má tá sí níos faide), agus is tairisigh sheasta iad ipad/opad. Ní féidir ach le duine a bhfuil an eochair ar eolas aige an cód ceart a tháirgeadh do theachtaireacht, agus athraíonn aon athrú ar an teachtaireacht an cód go hiomlán. Sin an fáth a sínítear webhooks, iarratais API (AWS Signature Version 4, mar shampla) agus JSON Web Tokens HS256 le HMAC.
Ní criptiú é HMAC: ní chuirtear an teachtaireacht faoi cheilt. Ní hais focal faire é ach oiread; chun focail faire a stóráil, úsáid feidhm mhall mar bcrypt nó Argon2.
Braitheann fad an aschuir ar an algartam: 20 beart do SHA-1, 32 do SHA-256, 48 do SHA-384 agus 64 do SHA-512. Meastar HMAC-SHA1 slán mar MAC fós, ach is fearr SHA-256 do chórais nua. Moltar eochair randamach chomh fada leis an aschur ar a laghad (32 beart do HMAC-SHA256); ligeann eochracha heics nó Base64 duit bearta randamacha den chineál sin a chur isteach go díreach.
Webhook GitHub a sheiceáil
Síníonn GitHub gach seachadadh le rún do webhook agus seolann sé an toradh sa cheanntásc X-Hub-Signature-256 mar sha256= agus ina dhiaidh sin HMAC-SHA256 heics an choirp. Úsáideann sampla doiciméadaithe GitHub féin an rún It's a Secret to Everybody agus an corp Hello, World!; cuir isteach anseo iad le HMAC-SHA256 agus taispeánann an ceanntásc:
X-Hub-Signature-256: sha256=757107ea0eb2509fc211221cce984b8a37570b6d7586c22c46f4379c8b043e17
Glacann an réimse comparáide leis an líne cheanntásc iomlán, leis an luach sha256=…, nó le síniú heics nó Base64 lom (úsáideann Stripe, Shopify agus Slack scéimeanna cosúla lena gceanntásca féin agus sreanga sínithe). Do SHA-384 agus SHA-512, taispeánann an uirlis ceanntásc cineálach X-Signature, ós rud é nach bhfuil aon chaighdeán coiteann ann.
Comparáid in am seasta
Stopann freastalaí a chuireann sínithe i gcomparáid le gnáthchomparáid sreinge ag an gcéad charachtar difriúil. Trí amanna freagartha a thomhas, d’fhéadfadh ionsaitheoir síniú bailí a buille faoi thuairim carachtar ar charachtar. Scrúdaíonn an chomparáid san uirlis seo gach beart cibé toradh a bheidh ann, mar ba cheart do fhreastalaí a dhéanamh le crypto.timingSafeEqual i Node.js, hmac.compare_digest i Python nó hash_equals i PHP.
Ceisteanna coitianta
Cén fáth a bhfuil mo HMAC difriúil ón gceann a ríomhann mo fhreastalaí?
Is iad na cúiseanna is gnách teachtaireacht dhifriúil (sínítear an corp amh ag an bhfreastalaí, agus ghreamaigh tú JSON athfhormáidithe, nó tá bristeacha líne difriúil), eochair sa Formáid na heochrach mhícheart, nó algartam eile. Athraíonn fiú spás breise an toradh ar fad.
Ar cheart don aschur a bheith heics nó Base64?
Ionchódaíonn an dá cheann na bearta céanna. Úsáideann GitHub heics, agus úsáideann go leor API eile, mar Shopify, Base64. Úsáid cibé formáid atá ag súil leis an gcóras glactha.
An féidir liom eochair fholamh a úsáid?
Glacann an uirlis léi agus tugann sí rabhadh duit: le heochair fholamh, is féidir le haon duine an HMAC céanna a ríomh, mar sin ní chruthaíonn sé aon rud.
An bhfuil HMAC-SHA1 briste cosúil le SHA-1?
Ní bhriseann ionsaithe imbhuailte SHA-1 HMAC-SHA1, a mheastar slán mar MAC fós. Tacaítear leis fós do sheanchórais mar an seancheanntásc X-Hub-Signature, ach ba cheart do chórais nua HMAC-SHA256 nó níos láidre a úsáid.
An bhfuil m'eochair rúnda sábháilte anseo?
Ní phróiseáiltear an eochair agus an teachtaireacht ach i do bhrabhsálaí agus ní sheoltar áit ar bith iad. Fós féin, láimhseáil rún táirgthe go cúramach agus rothlaigh é má cheapann tú gur nochtadh é.
Uirlisí gaolmhara
- Gineadóir Haiseanna Gin haiseanna MD5, SHA-1, SHA-256 agus SHA-512 de théacs nó de chomhaid d'aon mhéid, agus fíoraigh sumaí seiceála. Ritheann gach rud i do bhrabhsálaí.
- Díchódóir JWT Díchódaigh ceanntásc agus ábhar JWT, léigh exp, iat agus nbf mar dhátaí, agus fíoraigh sínithe HS256, RS256, ES256 nó EdDSA i do bhrabhsálaí.
- Ionchódóir agus Díchódóir Base64 Ionchódóir agus díchódóir Base64 saor in aisce le tacaíocht iomlán UTF-8 agus rogha base64url. Oibríonn sé i do bhrabhsálaí amháin, ní uaslódáiltear aon rud.
- Gineadóir agus Seiceálaí Bcrypt Gin hais bcrypt le fachtóir costais ó 4 go 14, seiceáil focal faire in aghaidh hais atá ann cheana agus féach ar a leagan, a chostas, a salann agus a hais.