Geslo Bcrypt Generator
V brskalniku takoj ustvarite varne zgoščene vrednosti gesel bcrypt. Izberite svoj stroškovni faktor in razpršite gesla na strani odjemalca – popolnoma zasebno in brezplačno.
V brskalniku takoj ustvarite varne zgoščene vrednosti gesel bcrypt. Izberite svoj stroškovni faktor in razpršite gesla na strani odjemalca – popolnoma zasebno in brezplačno.
bcrypt je funkcija zgoščevanja gesel, ki sta jo oblikovala Niels Provos in David Mazières leta 1999 in izhaja iz šifre Blowfish. Za razliko od splošnih zgoščevalnih funkcij, kot je SHA-256, je bcrypt namenoma počasen - in nastavljivo počasen prek parametra stroškov - kar je natanko lastnost, ki jo potrebuje razpršilec gesel. Hitrejša zgoščevalna funkcija omogoča napadalcem, da s surovo silo uveljavijo več kandidatov na sekundo; počasnejši jih omejuje.
bcrypt samodejno vključuje tudi sol za vsako geslo, s čimer odpravi celoten razred napadov, ki temeljijo na vnaprej izračunanih mavričnih tabelah. Parameter soli in stroškov sta shranjena kot del izhoda bcrypt, tako da preverjanje potrebuje samo shranjeno zgoščeno vrednost in geslo kandidata – brez ločenega upravljanja soli. Ta kombinacija počasnosti, soli in samozadostne oblike je naredila bcrypt dve desetletji privzeti razpršilec gesla in danes močno izbiro.
Sodobne alternative obstajajo. Argon2 je zmagal na tekmovanju za zgoščevanje gesel leta 2015 in ponuja poleg časovne odpornosti tudi spomin. scrypt ponuja podobne lastnosti. Za nove dizajne je priporočena izbira Argon2id. bcrypt ostaja sprejemljiv in široko razporejen, zlasti v okoljih, kjer Argon2 ni na voljo.
Shranjevanje gesel kot navadnega besedila je zloraba. Shranjevanje s hitrim zgoščevanjem, kot je SHA-256, je komaj kaj boljše – sodobni grafični procesorji izračunajo milijarde zgoščenih vrednosti SHA-256 na sekundo, zaradi česar so napadi s surovo silo na katero koli običajno geslo izvedljivi v nekaj urah. Namerna počasnost bcrypta premakne ekonomiko: pri faktorju stroškov 12 napadalec porabi približno 250 ms na kandidatno geslo, zaradi česar je brutalna uporaba nepraktična za katero koli netrivialno geslo.
bcryptova samodejna sol za vsako geslo premaga tudi napade mavrične tabele. Dva uporabnika z istim geslom ustvarita različne zgoščene vrednosti bcrypt, ker se njune soli razlikujejo. Ogrožanje baze podatkov gesel napadalcu ne dovoli hitre prepoznave pogostih gesel ali zadetkov vnaprej izračunane tabele.
Vnesite geslo, izberite ceno, pridobite zgoščeno vrednost.
bcrypt uporablja spremenjeno fazo nastavitve ključa šifre Blowfish, ponovljeno 2^krat. Faktor stroškov je logaritemski – cena 12 je dvakrat počasnejša od cene 11, štirikrat počasnejša od cene 10. To logaritemsko skaliranje omogoča skrbnikom, da sčasoma povečajo stroške, ko se strojna oprema izboljšuje, brez preoblikovanja sistema.
Izhodni format je $version$cost$saltAndHash, kjer je saltAndHash kodiran base64 z abecedo po meri. Različica je običajno $2b$ (sodobna različica s popravljeno napako wraparound) ali $2y$ (specifična za PHP, enakovredna). Sol je 16 bajtov; hash je 24 bajtov; skupaj kodirajo 53 znakov custom-base64.
Največja dolžina vnosa je 72 bajtov (omejitev dolžine ključa Blowfish). Daljša gesla so tiho okrnjena, kar je dolgoletna posebnost bcrypt. Najboljša praksa je, da omejite dolžino gesla na 72 bajtov ali predhodno zgoščite s SHA-256, da normalizirate dolžino pred bcrypt.