Jenereta na Kithibitishaji cha Bcrypt
Bcrypt ni Nini?
Bcrypt ni kazi ya kupiga hash nywila iliyoundwa kwa usalama. Tofauti na kazi za hash za haraka (MD5, SHA-1), bcrypt ni polepole kwa makusudi kupitia kipengele cha gharama kinachoweza kusanidiwa — ikifanya mashambulio ya nguvu ya kikatili kuwa yasiyofaa. Kila hash inajumuisha salt ya nasibu, hivyo nywila zinazofanana huzalisha hash tofauti. Kipengele cha gharama (raundi) kinaongeza mara mbili muda wa hesabu kwa kila ongezeko: gharama 10 inachukua ~100ms, gharama 12 inachukua ~400ms, gharama 14 inachukua ~1.5s. Usihifadhi nywila kama maandishi wazi kamwe — daima zipige hash kwa bcrypt au kazi kama hiyo inayobadilika.
Jinsi ya Kutumia Jenereta ya Bcrypt
-
Weka nywila yako kwenye kichupo cha 'Hash' na uchague kipengele cha gharama (10–12 inapendekezwa kwa programu nyingi).
-
Bonyeza 'Tengeneza Hash' — hash ya bcrypt inaonekana chini na iko tayari kuhifadhiwa katika hifadhidata yako.
-
Kuthibitisha nywila dhidi ya hash iliyopo, badilisha kwenda kichupo cha 'Thibitisha'.
-
Weka nywila ya maandishi wazi na hash ya bcrypt iliyohifadhiwa, kisha bonyeza 'Thibitisha'.
-
Alama ya kupigia kura ya kijani inathibitisha ulinganifu; nyekundu inamaanisha nywila si sahihi.
Maswali Yanayoulizwa Mara Kwa Mara
Kipengele cha gharama kipi kinachobidi nitumie? Kwa programu nyingi za wavuti, kipengele cha gharama cha 10–12 ni usawa mzuri kati ya usalama na utendaji. Gharama 10 (~100ms) ni kiwango cha chini kinachorekomendwa. Tumia 12 (~400ms) kwa akaunti za thamani kubwa. Kuepuka kwenda chini ya 10, kwa kuwa inafanya shambuzi la brute-force kuwa haraka zaidi.
Kwa nini miundo miwili ya hash ya pasiwodi moja inaonekana tofauti? Bcrypt inabuni kiotomatiki salt ya nasibu ya herufi 22 kwa kila hash na kuiingiza katika matokeo. Hii inamaanisha kwamba pasiwodi sawa iliyoshwa mara mbili itazalisha kamba tofauti, ambayo ni kwa muundo — hukataza shambuzi la jedwali la upinde wa mvua.
Muundo wa string ya hash ya bcrypt unamaanisha nini? Hash ya bcrypt inaonekana kama $2b$12$SaltSaltSaltSaltSaltSaHashHashHashHashHashHashHashHas. $2b$ ni toleo la algorithm, $12$ ni kipengele cha gharama, ikifuatiwa na herufi 22 za salt iliyoingizwa kwa base64 na herufi 31 za hash.
Je, ninaweza kutumia hii kuthibitisha pasiwodi kutoka kwa hifadhi yangu ya data? Ndiyo. Ingiza hash ya bcrypt iliyohifadhiwa kutoka kwa hifadhi yako ya data na pasiwodi kamili katika kichupo cha Kuthibitisha. Zana itakubali kama zinaanganana, ambayo ni muhimu kwa kusuluhisha matatizo ya kuingia wakati wa maendeleo.
Keywords: jenereta ya bcrypt, hash ya bcrypt mtandaoni, kithibitishaji cha bcrypt, kupiga hash nywila, kipengele cha gharama cha bcrypt, hash ya nywila bcrypt, ukaguzi wa bcrypt