Bcrypt yra slaptažodžių maišymo funkcija, sukurta būti lėta ir skaičiavimo atžvilgiu brangi, todėl ji atspari brute-force atakoms. Tai pramonės standartas saugiam slaptažodžių saugojimui.
Kaip veikia Bcrypt
Bcrypt naudoja Blowfish šifrą su druska ir kainos faktoriumi. Kainos faktorius (raundai) nustato, kiek iteracijų algoritmas atlieka - kiekvienas padidinimas padvigubina skaičiavimo laiką, todėl atakos tampa eksponentiškai sunkesnės.
Kodėl naudoti Bcrypt?
Skirtingai nei MD5/SHA, kurie yra greiti (blogai slaptažodžiams), bcrypt yra tyčia lėtas. Tai daro brute-force atakas nepraktiškas. Kaina 10 reiškia 2^10 (1024) iteracijų, kurios užtrunka ~100ms maišymui - nereikšminga prisijungimui, bet pražūtinga užpuolikams, bandantiems milijardus slaptažodžių.
Geriausios saugumo praktikos
Naudokite kainą 10-12 daugumai programų. Kaina 10 yra dabartinis rekomenduojamas minimumas. Niekada nenaudokite MD5 ar SHA-1 slaptažodžiams - jie yra pažeisti. Niekada nesaugokite paprasto teksto slaptažodžių. Visada naudokite bcrypt, Argon2 arba scrypt slaptažodžių maišymui.