Ġeneratur u kontrollur tal-bcrypt
Iġġenera hash bcrypt b’fattur tal-ispiża minn 4 sa 14, iċċekkja password kontra hash eżistenti u ara l-verżjoni, l-ispiża, is-salt u d-digest tiegħu.
Aħsel password
- Verżjoni
- Spiża
- Salt (22 karattru)
- Hash (31 karattru)
Iċċekkja password kontra hash
- Verżjoni
- Spiża
- Salt (22 karattru)
- Hash (31 karattru)
Kif taħsel password bil-bcrypt
- Taħt Aħsel password, ikteb il-Password. Kontatur juri t-tul tagħha f’bytes UTF-8 u javżak meta taqbeż it-72 byte.
- Agħżel il-Fattur tal-ispiża (4–14). Il-linja taħtu turi n-numru ta’ rawnds, pereżempju 10 → 2^10 = 1,024 rawnds.
- Ikklikkja Iġġenera hash. Bar tal-progress isegwi x-xogħol, u l-paġna tibqa’ tintuża waqt li jaħdem. Meta jispiċċa, l-għodda turi l-ħin li ħa u l-Hash bcrypt, lest biex tikkopjah.
- Il-hash jinqasam f’partijiet tiegħu: Verżjoni, Spiża, Salt (22 karattru) u Hash (31 karattru).
Biex tiċċekkja password kontra hash, ikteb il-password, waħħal il-hash (dak li għadek kif iġġenerajt jimtela awtomatikament) u ikklikkja Iċċekkja l-password. Ir-riżultat jgħidlek jekk jaqblux. Agħżel Aħbi l-passwords biex taħbi ż-żewġ oqsma tal-password.
L-ħasil jaħdem fil-brawżer tiegħek bil-librerija bcryptjs, li titella’ biss meta tkun teħtiġha għall-ewwel darba. Ebda password jew hash ma jintbagħat x’imkien.
Kif jaħdem il-bcrypt
Il-bcrypt (Provos u Mazières, 1999) huwa funzjoni tal-ħasil tal-passwords mibnija fuq iċ-ċifra Blowfish. Għall-kuntrarju tal-SHA-256, huwa bil-mod apposta, u dan in-nuqqas ta’ veloċità jista’ jiġi aġġustat: il-fattur tal-ispiża huwa qawwa ta’ tnejn, għalhekk kull +1 jirdoppja x-xogħol. Spiża ta’ 10 tfisser 1,024 iterazzjoni tal-issettjar għali tal-ċavetta; spiża ta’ 12 tfisser 4,096. Din il-lentezza ma tinħassx meta utent jidħol, imma jagħmel il-brute force ta’ database misruqa ħafna aktar għali.
Hash bħal $2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy jinqara hekk:
$2b$: il-verżjoni.$2a$u$2y$(PHP) huma kompatibbli u jistgħu jiġu kkontrollati hawn;$2x$timmarka hashes minn implimentazzjoni antika bi bug u tiġi miċħuda.10: il-fattur tal-ispiża.- It-22 karattru li jmiss: salt każwali ta’ 128 bit, fl-alfabett Base64 proprju tal-bcrypt (
./A-Za-z0-9). - L-aħħar 31 karattru: ir-riżultat ta’ 184 bit.
Peress li s-salt huwa każwali u maħżun fil-hash, jekk taħsel l-istess password darbtejn tikseb żewġ hashes differenti, u t-tnejn jivverifikaw sew. Għalhekk tiċċekkja password b’funzjoni ta’ verifika u mhux billi tqabbel il-hashes.
Agħżel l-ispiża
Agħżel l-ogħla spiża li s-server tiegħek jiflaħ filwaqt li żżomm id-dħul veloċi, tipikament madwar kwart ta’ sekonda għal kull hash. L-OWASP jirrakkomanda spiża minima ta’ 10 għall-bcrypt. Il-brawżers jaħdmu l-bcrypt fil-JavaScript, li huwa diversi drabi iktar bil-mod minn implimentazzjoni nattiva ta’ server: minn spiża ta’ 12 l-għodda tavża li l-ħasil jista’ jieħu minn sekonda sa diversi sekondi, u kull pass żejjed jirdoppja l-ħin. Ix-xogħol jinqasam f’biċċiet qosra, għalhekk il-paġna ma tiġġammax.
Għal sistemi ġodda, l-OWASP issa jippreferi l-Argon2id, bil-bcrypt xorta aċċettabbli fejn l-Argon2id mhuwiex disponibbli.
Il-limitu ta’ 72 byte
Il-bcrypt juża biss l-ewwel 72 byte tal-password; dak kollu wara jiġi injorat bil-kwiet. Il-bytes mhumiex karattri: ittra bl-aċċent tieħu 2 bytes fl-UTF-8 u emoji tieħu 4. Żewġ passwords twal li jaqsmu l-ewwel 72 byte tagħhom jipproduċu l-istess hash. Il-kontatur tal-bytes javżak meta password tkun twila wisq. Xi sistemi jaħslu minn qabel passwords twal (pereżempju bl-HMAC-SHA256, imbagħad Base64) qabel il-bcrypt; jekk tagħmel hekk, qatt la tgħaddi digests binarji mhux ipproċessati, għax byte żero itemm il-password kmieni f’ħafna implimentazzjonijiet.
Mistoqsijiet frekwenti
Għaliex l-istess password tagħti hash differenti kull darba?
Kull hash jieħu salt każwali ġdid, li jinħażen ġewwa l-hash. Il-buttuna Iċċekkja l-password taqra s-salt u l-ispiża mill-hash u terġa’ tikkalkulah, għalhekk kull verżjoni tivverifika.
Hash bcrypt jista’ jiġi deċifrat?
Le. Il-bcrypt huwa funzjoni f’direzzjoni waħda. L-uniku mod kif tirkupra password huwa li tbassarha u taħsel kull tbassir, li huwa eżattament dak li l-fattur tal-ispiża jagħmel bil-mod.
Liema fattur tal-ispiża għandi nuża?
Mill-inqas 10, u aktar jekk is-server tiegħek jibqa’ veloċi biżżejjed. Kejjel fuq il-hardware tal-produzzjoni: il-ħin murija hawn jirrifletti l-JavaScript fil-brawżer tiegħek, normalment iktar bil-mod minn server.
Il-hashes $2a$, $2b$ u $2y$ jistgħu jiġu skambjati?
Għal passwords ta’ inqas minn 256 byte jagħtu l-istess riżultat, u din l-għodda tiċċekkja t-tlieta. $2b$ irranġat bug ta’ wraparound tat-tul fl-implimentazzjoni tal-OpenBSD, u $2y$ huwa l-isem tal-PHP għal implimentazzjoni korretta.
Huwa sigur li nikteb password reali hawn?
Kollox jaħdem lokalment u xejn ma jintbagħat jew jinħażen. Għal kontijiet reali, xorta hija prattika tajba li tittestja b’password tal-eżempju minflok waħda li tuża.
Għodod relatati
- Ġeneratur tal-hash Iġġenera hashes MD5, SHA-1, SHA-256 u SHA-512 ta’ test jew fajls ta’ kwalunkwe daqs, u vverifika checksums. Kollox jaħdem fil-brawżer tiegħek.
- Ġeneratur tal-passwords Ġeneratur tal-passwords b’xejn li joħloq passwords qawwija u każwali ta’ 4 sa 128 karattru fil-brawżer b’RNG sigur. Xejn ma jinħażen jew jintbagħat.
- Verifika tal-qawwa tal-password Ittestja kemm hi qawwija l-password tiegħek. Ara l-punteġġ, il-ħin stmat ta’ kisra f’erba’ xenarji ta’ attakk u pariri konkreti, kollox lokalment.
- Ġeneratur HMAC Ikkalkula HMAC-SHA1, SHA-256, SHA-384 jew SHA-512 b’ċavetta test, hex jew Base64, kseb output hex u Base64, u ivverifika firma webhook fil-brawżer tiegħek.