Zpět na nástroje

Generátor a ověřovač bcrypt hashů

Proměňte heslo v $2b$ bcrypt hash, nebo zkontrolujte heslo proti hashi, který už máte. Hashování běží ve Web Workeru ve vašem prohlížeči — nic z toho, co napíšete, se nikam neodesílá.

Vstup

Heslo a cost

Pro každý hash se losuje nová 16bajtová sůl, takže stejné heslo pokaždé vrátí jiný hash. To je smysl soli, ne chyba.

10
4 · rychle14 · pomalu

Cost 10 znamená 2^10 = 1,024 kol přípravy klíče. Každý krok nahoru zdvojnásobí práci — útočníkovi s ukradeným souborem hesel i vašemu vlastnímu serveru při každém jednom přihlášení. Většina produkčních systémů se pohybuje mezi 10 a 12.

Všechny tři prefixy dávají pro hesla kratší než 72 bajtů identické bajty hashe; liší se jen označení. Vestavěná funkce crypt() v PHP $2b$ nezná, takže $2b$ hash v password_verify() tiše selže. Pro PHP zvolte $2y$.

Hashování běží ve Web Workeru uvnitř této záložky. Heslo se nikdy neodesílá Wespneru ani nikomu jinému — není tu žádný požadavek, který by ho odeslal.

Výsledek

bcrypt hash

Stiskněte „Vygenerovat hash“.

Cost, měřeno zde

Co vás toto nastavení stojí

Odhad: jeden hash se změří v této záložce při cost 8 a všechny ostatní hodnoty se z něj dopočítají zdvojnásobováním. Číslo určuje váš hardware a prohlížeč.

Jedna kontrola zde
měřím…
Pokusů za sekundu
Seznam 14,344,391 slov

Ta čísla jsou jedno vlákno JavaScriptu. Skutečný útočník pouští nativní kód na regálu GPU a je o řády rychlejší — přesně kvůli té propasti musí být cost faktor nepohodlný, ne pohodlný. Stejný posuvník zároveň určuje, kolik CPU spálí každé vaše vlastní přihlášení.

Čtení řetězce

Co znamená těch 60 znaků

$2b$12$LQv3c1yqBWVHxkd0LHAkCOYUtYgBuLIjrsGrDUgYqZbY7d0RfPbtq

verze
$2b$
cost
12 → 2^12 = 4,096 kol
sůl (22)
LQv3c1yqBWVHxkd0LHAkCO
hash (31)
YUtYgBuLIjrsGrDUgYqZbY7d0RfPbtq

Oba bloky používají vlastní base64 abecedu bcryptu, která začíná ./ a číslice dává nakonec — není to standardní base64 a dekódovat ji jako base64 dá špatné bajty. To a rozdělení 22/31 je rychlý způsob, jak ověřit, že řetězec opravdu je bcrypt hash a ne něco, co tak jen vypadá.

Volba algoritmu

bcrypt, scrypt nebo Argon2?

Tento nástroj je záměrně jen pro bcrypt. Tady je, kdy je bcrypt správnou odpovědí a kdy ne.

bcrypt
Náročný na CPU, 1999

Pomalý záměrně, ale opírá se jen o čas CPU a pevné 4 KB paměti. GPU a FPGA ho paralelizují mnohem lépe než novější návrhy. Pořád je to naprosto slušná volba, podporuje ho úplně všechno a jeho limit 72 bajtů na heslo je jeho nejpřekvapivější ostrou hranou.

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

Přidává laditelnou paměťovou náročnost, takže útočník potřebuje RAM na každý pokus, nejen jádra. Levně paralelizovat je ho těžší než bcrypt.

Argon2id
Aktuální doporučení

Vítěz Password Hashing Competition 2015 a to, co dnes OWASP doporučuje pro nové systémy: oddělené parametry pro čas, paměť a paralelismus, přičemž varianta id odolává útokům přes GPU i postranními kanály. Pokud začínáte na zelené louce a vaše platforma ji má, použijte ji. Pokud udržujete něco, co už ukládá $2y$ hashe, bcrypt s rozumným cost faktorem není havárie — přehashujte při dalším přihlášení.

Důkaz

Zkontrolujte tuto stránku proti publikovaným testovacím vektorům

Hashovací nástroj, který chce být důvěryhodný, by měl jít ověřit. Toto jsou referenční bcrypt vektory používané implementacemi odvozenými z OpenBSD; stránka každý z nich přepočítá z jeho vlastní soli a porovná znak po znaku, pak zahashuje a znovu ověří jednorázové heslo při dvou cost faktorech.

Dávka spouští 6 publikovaných vektorů a dva obousměrné testy.

Provozuješ vlastní herní server?

Herní servery Wespner s DDoS ochranou, NVMe disky a aktivací do pár minut.

Prohlédnout hosting