Späť na nástroje

Generátor a overovač bcrypt hashov

Premeňte heslo na $2b$ bcrypt hash, alebo skontrolujte heslo proti hashu, ktorý už máte. Hashovanie beží vo Web Workeri vo vašom prehliadači — nič z toho, čo napíšete, sa nikam neodosiela.

Vstup

Heslo a cost

Pre každý hash sa žrebuje nová 16-bajtová soľ, takže rovnaké heslo zakaždým vráti iný hash. To je zmysel soli, nie chyba.

10
4 · rýchlo14 · pomaly

Cost 10 znamená 2^10 = 1,024 kôl prípravy kľúča. Každý krok nahor zdvojnásobí prácu — útočníkovi s ukradnutým súborom hesiel aj vášmu vlastnému serveru pri každom jednom prihlásení. Väčšina produkčných systémov sa pohybuje medzi 10 a 12.

Všetky tri prefixy dávajú pre heslá kratšie než 72 bajtov identické bajty hashu; líši sa len označenie. Vstavaná funkcia crypt() v PHP $2b$ nepozná, takže $2b$ hash v password_verify() ticho zlyhá. Pre PHP zvoľte $2y$.

Hashovanie beží vo Web Workeri vnútri tejto karty. Heslo sa nikdy neodosiela Wespneru ani nikomu inému — nie je tu žiadna požiadavka, ktorá by ho odoslala.

Výsledok

bcrypt hash

Stlačte „Vygenerovať hash“.

Cost, merané tu

Čo vás toto nastavenie stojí

Odhad: jeden hash sa odmeria v tejto karte pri cost 8 a všetky ostatné hodnoty sa z neho dopočítajú zdvojnásobovaním. Číslo určuje váš hardvér a prehliadač.

Jedna kontrola tu
meriam…
Pokusov za sekundu
Zoznam 14,344,391 slov

Tie čísla sú jedno vlákno JavaScriptu. Skutočný útočník púšťa natívny kód na regáli GPU a je o rády rýchlejší — presne pre tú priepasť musí byť cost faktor nepohodlný, nie pohodlný. Rovnaký posuvník zároveň určuje, koľko CPU spáli každé vaše vlastné prihlásenie.

Čítanie reťazca

Čo znamená tých 60 znakov

$2b$12$LQv3c1yqBWVHxkd0LHAkCOYUtYgBuLIjrsGrDUgYqZbY7d0RfPbtq

verzia
$2b$
cost
12 → 2^12 = 4,096 kôl
soľ (22)
LQv3c1yqBWVHxkd0LHAkCO
hash (31)
YUtYgBuLIjrsGrDUgYqZbY7d0RfPbtq

Oba bloky používajú vlastnú base64 abecedu bcryptu, ktorá začína ./ a číslice dáva nakoniec — nie je to štandardný base64 a dekódovať ho ako base64 dá zlé bajty. To a rozdelenie 22/31 je rýchly spôsob, ako overiť, že reťazec naozaj je bcrypt hash a nie niečo, čo tak len vyzerá.

Voľba algoritmu

bcrypt, scrypt alebo Argon2?

Tento nástroj je zámerne len pre bcrypt. Tu je, kedy je bcrypt správnou odpoveďou a kedy nie.

bcrypt
Náročný na CPU, 1999

Pomalý zámerne, ale opiera sa len o čas CPU a pevné 4 KB pamäte. GPU a FPGA ho paralelizujú oveľa lepšie než novšie návrhy. Stále je to úplne slušná voľba, podporuje ho úplne všetko a jeho limit 72 bajtov na heslo je jeho najprekvapivejšou ostrou hranou.

scrypt
Náročný na pamäť, 2009

Pridáva laditeľnú pamäťovú náročnosť, takže útočník potrebuje RAM na každý pokus, nielen jadrá. Lacno paralelizovať ho je ťažšie než bcrypt.

Argon2id
Aktuálne odporúčanie

Víťaz Password Hashing Competition 2015 a to, čo dnes OWASP odporúča pre nové systémy: oddelené parametre pre čas, pamäť a paralelizmus, pričom variant id odoláva útokom cez GPU aj postrannými kanálmi. Ak začínate na zelenej lúke a vaša platforma ho má, použite ho. Ak udržiavate niečo, čo už ukladá $2y$ hashe, bcrypt s rozumným cost faktorom nie je havária — prehashujte pri ďalšom prihlásení.

Dôkaz

Skontrolujte túto stránku proti publikovaným testovacím vektorom

Hashovací nástroj, ktorý chce byť dôveryhodný, by mal ísť overiť. Toto sú referenčné bcrypt vektory používané implementáciami odvodenými z OpenBSD; stránka každý z nich prepočíta z jeho vlastnej soli a porovná znak po znaku, potom zahashuje a znova overí jednorazové heslo pri dvoch cost faktoroch.

Dávka spúšťa 6 publikovaných vektorov a dva obojsmerné testy.

Prevádzkuješ vlastný herný server?

Herné servery Wespner s DDoS ochranou, NVMe diskami a aktiváciou do pár minút.

Prezrieť hosting