Generátor Bcrypt
Vytvorte hash hesla bcrypt s náhodnou 16-bajtovou soľou a nákladovým faktorom od 4 do 12. Nástroj vráti štandardný modulárny kryptografický reťazec začínajúci na $2a$, ktorý akceptujú PHP password_verify, Node.js bcrypt, Spring Security a väčšina frameworkov. Použite ho na vytvorenie testovacích používateľov, obnovenie hesla správcu v databáze alebo kontrolu vlastného kódu na hashovanie. Heslo sa nikdy nezobrazí ani neuloží.
Často kladené otázky
Čo je bcrypt?
Bcrypt je funkcia na hashovanie hesiel z 1999 založená na šifre Blowfish. Kombinuje náhodnú soľ s nastaviteľnou náročnosťou, takže každý ďalší krok zdvojnásobí prácu, ktorú musí útočník vynaložiť na jeden pokus. Stále ide o široko podporovanú voľbu na ukladanie hesiel.
Čo znamená výstupný reťazec?
Hash, napríklad $2a$10$ nasledovaný 53 znakmi, obsahuje verziu 2a, náklad 10, 22-znakovú soľ a 31-znakový hash, všetko v osobitnej abecede bcrypt Base64. Uložte celý reťazec, pretože overovač z neho načíta soľ a náklad.
Aký nákladový faktor mám zvoliť?
Nástroj umožňuje náklad od 4 do 12 a predvolene používa hodnotu 10, ktorá je bežným predvoleným nastavením frameworkov. Každý krok zdvojnásobí čas, takže výpočet s nákladom 12 trvá približne štyrikrát dlhšie než s nákladom 10. V produkcii vyberte najvyšší náklad, ktorý vaše servery zvládnu približne za 100 až 250 milisekúnd.
Prečo je náklad obmedzený na 12?
Vyššie náklady znamenajú niekoľko sekúnd na jeden hash a umožnili by, aby jedna požiadavka na dlhý čas zaneprázdnila server. Náklad 12 je už pre väčšinu aplikácií dostatočne silný a v prípade potreby môžete vo vlastnom prostredí hashovať znova s vyšším nákladom.
Prečo rovnaké heslo zakaždým vytvorí iný hash?
Nástroj pri každom hashovaní vygeneruje novú náhodnú 16-bajtovú soľ. Rôzne soli vytvoria rôzne reťazce, ale všetky sa overia voči rovnakému heslu. Tým sa útočníkom zabraňuje používať predpočítané tabuľky.
Existuje limit dĺžky hesla?
Áno. Bcrypt používa iba prvých 72 bajtov hesla, preto nástroj dlhšie heslá odmietne namiesto toho, aby zvyšok potichu ignoroval. Znaky mimo ASCII zaberajú v UTF-8 niekoľko bajtov.
Akceptujú PHP alebo Laravel hash $2a$?
Áno. PHP password_verify, Laravel, Symfony a WordPress doplnky používajúce password_hash akceptujú hashe $2a$, $2b$ a $2y$, ktoré sa líšia iba historickými opravami chýb. Node.js bcrypt, bcryptjs, Python bcrypt a Spring Security akceptujú aj $2a$.
Ukladá sa alebo zaznamenáva moje heslo?
Nie. Heslo sa použije iba na výpočet hashu počas požiadavky. Z odpovede sa odstráni a nikdy sa nezapisuje do protokolov ani úložiska.
Mám použiť bcrypt alebo Argon2?
OWASP v súčasnosti odporúča Argon2id, pretože je náročný na pamäť, čo zvyšuje náklady na útoky pomocou GPU. Bcrypt je stále prijateľný a má veľmi širokú podporu v knižniciach, takže je dobrou voľbou, keď Argon2 nie je dostupný.
Ako overím heslo pomocou hashu bcrypt?
Použite na tejto stránke nástroj Bcrypt Verifier alebo zavolajte overovaciu funkciu svojho frameworku. Nikdy neporovnávajte reťazce bcrypt priamo, pretože nový hash toho istého hesla vždy vyzerá inak.