Teknobench

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.

Haiseáil focal faire

Seiceáil focal faire in aghaidh hais

Conas focal faire a haiseáil le bcrypt

  1. Faoi Haiseáil focal faire, clóscríobh an Focal faire. Taispeánann áiritheoir a fhad i mbeart UTF-8 agus tugann sé rabhadh duit nuair a théann sé thar 72 bheart.
  2. Roghnaigh an Fachtóir costais (4–14). Taispeánann an líne thíos líon na mbabhtaí, mar shampla 10 → 2^10 = 1,024 babhta.
  3. Cliceáil Gin hais. Leanann barra dul chun cinn an obair, agus fanann an leathanach inúsáidte agus é ag rith. Nuair a bhíonn sé críochnaithe, taispeánann an uirlis an t-am a thóg sé agus an Hais bcrypt, réidh le cóipeáil.
  4. Roinntear an hais ina páirteanna: Leagan, Costas, Salann (22 charachtar) agus Hais (31 charachtar).

Chun focal faire a sheiceáil in aghaidh hais, clóscríobh an focal faire, greamaigh an hais (líontar isteach go huathoibríoch an ceann a ghin tú díreach anois) agus cliceáil Seiceáil an focal faire. Deir an toradh an meaitseálann siad. Cuir tic i Folaigh focail faire chun an dá réimse focal faire a cheilt.

Ritheann an haiseáil i do bhrabhsálaí leis an leabharlann bcryptjs, nach lódáiltear ach nuair a theastaíonn sé den chéad uair. Ní sheoltar aon fhocal faire ná hais áit ar bith.

Conas a oibríonn bcrypt

Is feidhm haiseála focal faire é bcrypt (Provos agus Mazières, 1999) atá bunaithe ar an gcriptea Blowfish. Murab ionann agus SHA-256, tá sé mall d’aon ghnó, agus is féidir an mhaille sin a choigeartú: is cumhacht de dhó é an fachtóir costais, mar sin dúbláiltear an obair le gach +1. Ciallaíonn costas 10 1,024 atriall den socrú eochrach costasach; ciallaíonn costas 12 4,096. Is beag tábhacht atá leis an mhaille sin nuair a logálann úsáideoir isteach, ach déanann sí fórsa bruite bunachar sonraí goidte i bhfad níos costasaí.

Léitear hais mar $2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy mar seo a leanas:

  • $2b$: an leagan. Tá $2a$ agus $2y$ (PHP) comhoiriúnach agus is féidir iad a sheiceáil anseo; marcálann $2x$ hais ó sheanimlíocht lochtach agus diúltaítear dó.
  • 10: an fachtóir costais.
  • An chéad 22 charachtar eile: salann randamach 128 ghiotán, in aibítir Base64 féin bcrypt (./A-Za-z0-9).
  • An 31 charachtar deireanach: an toradh 184 ghiotán.

Toisc go bhfuil an salann randamach agus stóráilte san hais, tugann haiseáil an fhocail faire chéanna faoi dhó dhá hais dhifriúla, agus fíoraíonn an dá cheann i gceart. Sin an fáth freisin go seiceálann tú focal faire le feidhm fíoraithe in ionad hais a chur i gcomparáid.

An costas a roghnú

Roghnaigh an costas is airde is féidir le do fhreastalaí a fhulaingt agus logálacha isteach tapa á gcoinneáil, thart ar cheathrú soicind in aghaidh an hais de ghnáth. Molann OWASP costas íosta de 10 do bcrypt. Ritheann brabhsálaithe bcrypt i JavaScript, rud atá roinnt uaireanta níos moille ná cur i bhfeidhm dúchasach freastalaí: ó chostas 12 tugann an uirlis rabhadh go bhféadfadh an haiseáil soicind amháin nó roinnt soicindí a thógáil, agus dúblaíonn gach céim bhreise an t-am. Roinntear an obair ina píosaí gearra, mar sin ní reoitear an leathanach.

Do chórais nua, is fearr le OWASP Argon2id anois, agus tá bcrypt inghlactha fós nuair nach bhfuil Argon2id ar fáil.

An teorainn 72 bheart

Ní úsáideann bcrypt ach an chéad 72 bheart den fhocal faire; déantar neamhaird shiléalta ar gach rud ina dhiaidh. Ní carachtair iad bearta: tógann litir le fadas 2 bheart in UTF-8 agus tógann emoji 4. Táirgeann dhá fhocal faire fhada a bhfuil a gcéad 72 bheart acu i gcoitinne an hais chéanna. Tugann an t-áiritheoir bearta rabhadh duit nuair a bhíonn focal faire rófhada. Réamhhaiseálann roinnt córas focail faire fhada (mar shampla le HMAC-SHA256, agus ansin Base64) roimh bcrypt; má dhéanann tú é seo, ná cuir hais dhénártha amh ar aghaidh riamh, mar go gcríochnódh beart nialasach an focal faire go luath i go leor cur i bhfeidhm.

Ceisteanna coitianta

Cén fáth a dtugann an focal faire céanna hais dhifriúil gach uair?

Faigheann gach hais salann randamach nua, atá stóráilte laistigh den hais. Léann an cnaipe Seiceáil an focal faire an salann agus an costas ón hais agus ríomhann sé arís é, mar sin fíoraíonn gach leagan.

An féidir hais bcrypt a dhícriptiú?

Ní féidir. Is feidhm aontreo é bcrypt. Is é an t-aon bhealach chun focal faire a aisghabháil ná buille faoi thuairim a thabhairt air agus gach buille faoi thuairim a haiseáil, rud a dhéanann an fachtóir costais mall go cruinn.

Cén fachtóir costais ba cheart dom a úsáid?

10 ar a laghad, agus níos mó má fhanann do fhreastalaí tapa go leor. Tomhais ar do chrua-earraí táirgthe: léiríonn an t-am a thaispeántar anseo JavaScript i do bhrabhsálaí, atá níos moille ná freastalaí de ghnáth.

An bhfuil hais $2a$, $2b$ agus $2y$ idirmhalartaithe?

Do fhocail faire faoi 256 beart, tugann siad an toradh céanna, agus seiceálann an uirlis seo na trí cinn. Shocraigh $2b$ fabht timpeallú fad i gcur i bhfeidhm OpenBSD, agus is é $2y$ ainm PHP ar chur i bhfeidhm ceart.

An bhfuil sé sábháilte fíorfhocal faire a chlóscríobh anseo?

Ritheann gach rud go háitiúil agus ní sheoltar ná ní stóráiltear aon rud. Do chuntais fhíora, is dea-chleachtas fós é triail a bhaint as focal faire samplach seachas ceann a úsáideann tú.