Bcrypt-generátor
Készítsen bcrypt-jelszóhash-t véletlen, 16 bájtos sóval és 4–12 közötti költségtényezővel. Az eszköz a $2a$ kezdetű, szabványos moduláris kriptográfiai karakterláncot adja vissza, amelyet a PHP password_verify, a Node.js bcrypt, a Spring Security és a legtöbb keretrendszer elfogad. Használja tesztfelhasználók létrehozásához, adminisztrátori jelszó adatbázisban történő visszaállításához, vagy saját hash-elő kódja ellenőrzéséhez. A jelszót soha nem jelenítjük meg és nem tároljuk.
Gyakran ismételt kérdések
Mi az a bcrypt?
A bcrypt jelszóhash-elő függvény az 1999 által kifejlesztve, a Blowfish titkosításon alapul. Véletlen sót kombinál egy állítható költséggel, így minden további költséglépés megkétszerezi azt a munkát, amelyet a támadónak egy-egy próbálkozáshoz el kell végeznie. Jelszavak tárolására továbbra is széles körben támogatott megoldás.
Mit jelent a kimeneti karakterlánc?
Egy olyan hash, mint a $2a$10$, amelyet 53 karakter követ, a 2a verziót, a 10-es költséget, egy 22 karakteres sót és egy 31 karakteres hash-t tartalmaz, mindet a bcrypt saját Base64 ábécéjével kódolva. A teljes karakterláncot tárolja, mert az ellenőrző ebből olvassa ki a sót és a költséget.
Milyen költségtényezőt válasszak?
Az eszköz 4 és 12 közötti költséget engedélyez, alapértelmezésként pedig 10-et használ, ami sok keretrendszerben megszokott alapérték. Minden lépés megduplázza a futási időt, így a 12-es költség körülbelül négyszer annyi ideig tart, mint a 10-es. Éles rendszerben válassza a legnagyobb költséget, amellyel a szerverek még nagyjából 100–250 ezredmásodperc alatt végeznek.
Miért legfeljebb 12 a költség?
A nagyobb költségek hash-enként másodpercekig tartanak, így egyetlen kérés is hosszú időre lefoglalhatná a szervert. A 12-es költség már a legtöbb alkalmazás számára erős, és ha szükséges, saját környezetében magasabb költséggel újra hash-elheti a jelszavakat.
Miért ad más hash-t ugyanaz a jelszó minden alkalommal?
Az eszköz minden hash-hez új, véletlen, 16 bájtos sót generál. A különböző sók eltérő karakterláncokat eredményeznek, de mindegyik ugyanahhoz a jelszóhoz érvényes. Ez megakadályozza, hogy a támadók előre kiszámított táblázatokat használjanak.
Van jelszóhossz-korlát?
Igen. A bcrypt csak a jelszó első 72 bájtját használja fel, ezért az eszköz elutasítja a hosszabb jelszavakat ahelyett, hogy észrevétlenül figyelmen kívül hagyná a végét. A nem ASCII-karakterek több bájtot foglalnak UTF-8-ban.
Elfogadja a PHP vagy a Laravel a $2a$ hash-t?
Igen. A PHP password_verify, a Laravel, a Symfony és a password_hash függvényt használó WordPress bővítmények elfogadják a $2a$, a $2b$ és a $2y$ hash-eket; ezek csak a korábban javított hibák tekintetében különböznek. A Node.js bcrypt, a bcryptjs, a Python bcrypt és a Spring Security a $2a$ formátumot is elfogadja.
Tárolja vagy naplózza a rendszer a jelszavamat?
Nem. A jelszót csak a kérés feldolgozása közben használja a hash kiszámításához. A válaszból eltávolítja, és soha nem írja naplóba vagy tárhelyre.
A bcryptet vagy az Argon2-t használjam?
Az OWASP újabb ajánlása az Argon2id, mert nagy memóriaigényű, így költségesebbé teszi a GPU-s támadásokat. A bcrypt továbbra is elfogadható, és nagyon széles körű könyvtártámogatást élvez, ezért jó választás, ha az Argon2 nem érhető el.
Hogyan ellenőrizhetek egy jelszót egy bcrypt hash alapján?
Használja az oldalon található Bcrypt-ellenőrzőt, vagy hívja meg a keretrendszere verify függvényét. Soha ne hasonlítson össze közvetlenül bcrypt-karakterláncokat, mert ugyanannak a jelszónak az új hash-e mindig másképp néz ki.