Bcrypt je funkcija za hashiranje lozinki dizajnirana da bude spora i računalno skupa, što je čini otpornom na brute-force napade. To je industrijski standard za sigurno pohranjivanje lozinki.
Kako Bcrypt radi
Bcrypt koristi Blowfish šifru sa solju i faktorom troška. Faktor troška (runde) određuje koliko iteracija algoritam izvršava - svako povećanje udvostručuje vrijeme računanja, čineći napade eksponencijalno težim.
Zašto koristiti Bcrypt?
Za razliku od MD5/SHA koji su brzi (loše za lozinke), bcrypt je namjerno spor. To čini brute-force napade nepraktičnima. Trošak 10 znači 2^10 (1.024) iteracija, za koje treba ~100ms za hashiranje - zanemarivo za prijavu ali razorno za napadače koji isprobavaju milijarde lozinki.
Najbolje sigurnosne prakse
Koristite trošak 10-12 za većinu aplikacija. Trošak 10 je trenutni preporučeni minimum. Nikada ne koristite MD5 ili SHA-1 za lozinke - probijeni su. Nikada ne pohranjujte lozinke u čistom tekstu. Uvijek koristite bcrypt, Argon2 ili scrypt za hashiranje lozinki.