Site icon PlusMagi's Blog By Pitt Phunsanit

Bcrypt: Password Hashing

Bcrypt ย่อมาจาก Blowfish crypt เป็นอัลกอริทึมสำหรับแฮชรหัสผ่าน ( Password Hashing ) ที่พัฒนาโดย Niels Provos และ David Mazières โดยนำหลักการของ Blowfish block cipher มาปรับใช้ ออกแบบมาเพื่อป้องกันการโจมตีแบบ Brute-force โดยเน้นความช้าในการคำนวณและเพิ่มความปลอดภัยสูง


จุดเด่นสำคัญของ Bcrypt


โครงสร้างของ Bcrypt Hash

เมื่อคุณทำการ Hash รหัสผ่านด้วย Bcrypt คุณจะได้ข้อความยาวประมาณ 60 ตัวอักษร ซึ่งจะถูกแบ่งออกเป็นส่วนหลักๆ ดังนี้ครับ

$2a$12$R9h/cIPz0gi.URNNX3kh2OPST9/TVBGL6NJ5kGKAq7slgnzpsS.66

  1. Prefix ( $2a$ ): บอกถึงเวอร์ชันของอัลกอริทึม Bcrypt ที่ใช้
  2. Cost Factor ( 12 ): คือจำนวนรอบในการคำนวณ ( Key derivation iterations ) ยิ่งตัวเลขสูง ยิ่งใช้เวลาประมวลผลนาน ทำให้แฮกเกอร์เดารหัสผ่านได้ยากขึ้น
  3. Salt ( R9h/cIPz0gi.URNNX3kh2O ): นี่คือส่วนของ Salt ( ปกติยาว 22 ตัวอักษร ) ที่ถูกสุ่มขึ้นมาและเก็บไว้ในตัวมันเองเลย
  4. Hash Text ( PST9/TVBGL6NJ5kGKAq7slgnzpsS.66 ): คือผลลัพธ์สุดท้ายที่ได้จากการนำ Password + Salt ไปผ่านกระบวนการเข้ารหัส

ทำไมต้องเก็บ Salt ไว้ข้างใน ?

กลไกของ Bcrypt ถูกออกแบบมาเพื่อความสะดวกและปลอดภัย ดังนี้ครับ


ข้อควรระวังในการใช้งาน

แม้ Bcrypt จะปลอดภัยมาก แต่ก็มีจุดที่ต้องพิจารณา


อ่านเพิ่มเติม

Exit mobile version