§

Tagabuo ng Bcrypt

§

Gumawa ng Bcrypt Hash

10 (1,024 rounds)

Ang Bcrypt ay naging pangunahing password hashing scheme sa web development mula nang ilunsad ito noong 1999 nina Provos at Mazières. Inirerekomenda ng NIST SP 800-63B ang memory-hard hashing para sa password storage, at itinuturing ng OWASP ang bcrypt bilang preferred option kasama ng Argon2id. Ang Rails ay may bcrypt sa pamamagitan ng has_secure_password, sinusuportahan ito ng Django bilang pluggable backend, at ang mga Node.js developer ay gumagamit ng bcryptjs. Kinokontrol ng cost factor kung gaano katagal bago makagawa ng isang hash — ang pagdoble ng cost ay nagdodoble ng trabaho. Karamihan sa apps ay gumagamit ng cost 10 (1,024 rounds) bilang baseline, habang ang financial o admin system ay madalas gumagamit ng 12 (4,096 rounds). Ang tool na ito ay tumatakbo nang buo sa browser gamit ang JavaScript, kaya hindi umaalis ang iyong mga password sa iyong device.

Ano ang bcrypt?

Ang Bcrypt ay isang password-hashing function na dinisenyo nina Niels Provos at David Mazières, batay sa Blowfish cipher. Hindi tulad ng mabilis na digest gaya ng MD5 o SHA-256, ang bcrypt ay sadyang mabagal at computationally expensive — ginagawa nitong impractical ang brute-force attacks laban sa mga ninakaw na password hash. Awtomatikong bumubuo ang Bcrypt ng random salt bawat password, kaya ang magkaparehong password ay gumagawa ng magkaibang hash.

Paano gumagana ang bcrypt?

Ang bcrypt algorithm ay tumatakbo nang buo sa iyong browser. Narito ang mga hakbang:

  1. Ang iyong password ay naka-encode bilang UTF-8 bytes at ipinasok sa bcrypt key schedule, na nag-i-initialize ng 4,184-byte P-array at S-boxes ng Blowfish cipher gamit ang password at salt.
  2. Isang random na 128-bit salt ang nabubuo. Ang salt ay hinahalo sa key schedule upang ang bawat natatanging salt ay gumagawa ng ganap na kakaibang hash kahit para sa parehong password.
  3. Ang key schedule ay pina-ulit ng 2^cost rounds (hal., 2^10 = 1,024 iterations sa cost 10). Ang bawat iteration ay nagre-re-encrypt ng salt at P-array entries, pinapabagal ang computation habang tumataas ang cost.
  4. Ang final output ay isang 60-character string sa format na $2b$<cost>$<salt><hash>, kung saan ang cost ay zero-padded (hal., 10), ang salt ay 22 Base64 character, at ang hash ay 31 Base64 character.
  5. Para sa verification, ang parehong algorithm ay pinatatakbo muli gamit ang candidate password at ang salt na nakuha mula sa stored hash. Kung ang derived hash ay tugma sa stored hash, tama ang password.

Aling cost factor ang dapat kong gamitin?

Ang cost factor ay ang logarithm ng iteration count — cost 10 ay nangangahulugang 2^10 = 1,024 rounds, cost 12 ay 4,096 rounds. Pumili batay sa iyong security needs at hardware:

  • Cost 4-6 (16-64 rounds) — para lamang sa development at testing. Masyadong mabilis para sa production; nagbibigay ng minimal na proteksyon.
  • Cost 8 (256 rounds) — pinakamababa para sa mga hindi kritikal na application. Mga 6ms sa modernong hardware.
  • Cost 10 (1,024 rounds) — kasalukuyang inirerekomendang baseline. Mga 25ms. Mainam para sa karamihan ng web applications.
  • Cost 12 (4,096 rounds) — inirerekomenda para sa admin portals, financial systems, at high-security apps. Mga 100ms.
  • Cost 14 (16,384 rounds) — mataas na seguridad. Mga 400ms. Gamitin para sa master password, encryption keys, o kapag acceptable ang login latency.

Bakit gamitin ang bcrypt generator na ito?

  • Protektado ang iyong privacy — bawat password ay naha-hash locally sa iyong browser, at walang data na umaalis sa iyong device.
  • Mayroon kang parehong mode nang magkatabi: gumawa ng bagong hash o i-verify ang umiiral nang hindi lumilipat ng page.
  • Ang cost factor ay adjustable mula 4 (mabilis) hanggang 15 (napakabagal), upang tumugma sa pangangailangan ng seguridad ng iyong application.
  • Ang mga hash ay gumagamit ng standard na $2b$ format na gumagana sa bawat pangunahing language at framework.

Ano ang mga karaniwang application ng bcrypt?

Ang Bcrypt ay malawakang ginagamit para sa password storage at verification sa industriya:

  • Web application user authentication — pag-imbak ng user password hash sa database upang hindi mai-save ang plaintext password.
  • API key hashing — pag-ha-hash ng API secrets bago i-imbak ang mga ito, upang hindi tumagas ang valid na credentials sa database breach.
  • Migration auditing — pagsusuri kung ang legacy password hash mula sa mas lumang sistema ay maaari pa ring mag-authenticate ng user pagkatapos i-upgrade ang auth layer.

Ano ang itsura ng bcrypt hash?

Ang pag-ha-hash ng password na hunter2 na may cost factor 10 ay gumagawa ng string na tulad ng $2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy Ang format ay: $2b$ (algorithm version), 10 (cost factor), $, pagkatapos ay 22 character ng salt at 31 character ng hash, lahat ay Base64-encoded. Bawat pagtakbo na may parehong password ay gumagawa ng ibang hash dahil sa random salt.

Ang bcrypt generator na ito ay tumatakbo nang buo sa iyong browser gamit ang pure-JavaScript implementation. Mag-hash ng mga password bago i-imbak ang mga ito, i-verify ang mga umiiral na hash, at i-adjust ang cost factor upang tumugma sa iyong security requirements — lahat nang hindi nagpapadala ng kahit isang byte sa server.