Bcrypt Password Generator
Bumuo ng secure na bcrypt password na mga hash sa iyong browser. Piliin ang iyong cost factor at hash password sa client-side — ganap na pribado at libre.
Bumuo ng secure na bcrypt password na mga hash sa iyong browser. Piliin ang iyong cost factor at hash password sa client-side — ganap na pribado at libre.
Ang bcrypt ay isang password-hashing function na idinisenyo nina Niels Provos at David Mazières noong 1999, na nagmula sa Blowfish cipher. Hindi tulad ng mga pangkalahatang layunin na hash function tulad ng SHA-256, ang bcrypt ay sadyang mabagal — at mabagal na na-configure, sa pamamagitan ng isang parameter ng gastos — na eksaktong pag-aari na kailangan ng isang password hasher. Ang isang mas mabilis na hash function ay nagbibigay-daan sa mga umaatake na puwersahin ang higit pang mga kandidato bawat segundo; nililimitahan sila ng mas mabagal.
Awtomatikong isinasama ng bcrypt ang per-password salt, na inaalis ang isang buong klase ng mga pag-atake batay sa mga precomputed na rainbow table. Ang parameter ng asin at gastos ay iniimbak bilang bahagi ng output ng bcrypt, kaya kailangan lang ng pag-verify ang nakaimbak na hash at password ng kandidato — walang hiwalay na pamamahala ng asin. Ang kumbinasyong ito ng kabagalan, asin, at self-contained na format ay ginawa ang bcrypt bilang default na hash ng password sa loob ng dalawang dekada at isang malakas na pagpipilian ngayon.
Mayroong mga modernong alternatibo. Nanalo ang Argon2 sa 2015 Password Hashing Competition at nag-aalok ng memory-hardness bilang karagdagan sa time-hardness. Nag-aalok ang scrypt ng mga katulad na katangian. Para sa mga bagong disenyo, Argon2id ang inirerekomendang pagpipilian. Ang bcrypt ay nananatiling katanggap-tanggap at malawak na naka-deploy, lalo na sa mga kapaligiran kung saan hindi available ang Argon2.
Ang pag-iimbak ng mga password bilang plaintext ay malpractice. Ang pag-imbak ng mga ito gamit ang isang mabilis na hash tulad ng SHA-256 ay halos hindi mas mahusay - ang mga modernong GPU ay nagku-compute ng bilyun-bilyong SHA-256 na mga hash bawat segundo, na ginagawang posible ang mga brute-force na pag-atake laban sa anumang karaniwang password sa ilang oras. Binabago ng sadyang kabagalan ng bcrypt ang ekonomiya: sa cost factor 12, ang isang attacker ay gumugugol ng humigit-kumulang 250 ms bawat password ng kandidato, na ginagawang hindi praktikal ang brute-force para sa anumang hindi walang kuwentang password.
Tinatalo din ng awtomatikong per-password na asin ng bcrypt ang mga pag-atake sa rainbow table. Dalawang user na may parehong password ang gumagawa ng magkaibang bcrypt hash dahil magkaiba ang kanilang mga salt. Ang pagkompromiso sa database ng password ay hindi nagbibigay-daan sa isang umaatake na mabilis na matukoy ang mga karaniwang password o precomputed-table hit.
Mag-type ng password, piliin ang gastos, kunin ang hash.
Gumagamit ang bcrypt ng isang binagong yugto ng pag-setup ng key-setup ng Blowfish cipher, na inuulit ng 2^beses ng gastos. Ang cost factor ay logarithmic — ang cost 12 ay dalawang beses na mas mabagal kaysa sa cost 11, apat na beses na mas mabagal kaysa sa cost 10. Ang logarithmic scaling na ito ay nagbibigay-daan sa mga administrator na pataasin ang gastos sa paglipas ng panahon habang ang hardware ay bumubuti, nang hindi muling idisenyo ang system.
Ang format ng output ay $version$cost$saltAndHash kung saan ang saltAndHash ay base64-encoded na may custom na alpabeto. Ang bersyon ay karaniwang $2b$ (ang modernong variant na may wraparound bug na naayos) o $2y$ (PHP-specific, katumbas). Ang asin ay 16 bytes; ang hash ay 24 bytes; magkasama silang nag-encode sa 53 character ng custom-base64.
Ang maximum na haba ng input ay 72 bytes (Blowfish key length limit). Ang mga mas mahabang password ay tahimik na pinuputol, na isang matagal nang bcrypt quirk. Ang pinakamahusay na kasanayan ay ang alinman sa limitahan ang haba ng password sa 72 bytes o pre-hash sa SHA-256 upang gawing normal ang haba bago ang bcrypt.