วิธีใช้งาน
- ในส่วนสร้าง hash ให้พิมพ์รหัสผ่าน ตั้ง cost factor ด้วยแถบเลื่อน แล้วคลิกสร้าง hash
- คัดลอก hash แต่ละ hash ใช้ salt แบบสุ่มใหม่ ดังนั้นรหัสผ่านเดียวกันจึงได้ hash ต่างกันทุกครั้ง
- หากต้องการตรวจ ให้กรอก bcrypt hash ทางขวาและพิมพ์รหัสผ่าน ผลลัพธ์จะแสดงว่าตรงกันหรือไม่
คำอธิบายตัวเลือก
- Cost factor
- 4 ถึง 15 ค่าเริ่มต้น 10 งานคือ 2 ยกกำลัง cost ดังนั้นเพิ่มทีละหนึ่งจะใช้เวลาสองเท่า หน้าเว็บแสดงเวลาที่สร้าง hash ในเบราว์เซอร์ของคุณเป็นแนวทาง
- คำนำหน้าเวอร์ชัน
- Hash ใหม่ขึ้นต้นด้วย $2b$ สำหรับการตรวจ $2a$, $2b$ และ $2y$ ที่สร้างโดย PHP password_hash ใช้ได้ทั้งหมด
- ขีดจำกัด 72 ไบต์
- bcrypt ใช้เฉพาะ 72 ไบต์แรกของรหัสผ่าน (UTF-8 ทำให้อักขระบางตัวใช้ 2–4 ไบต์) หน้าเว็บเตือนเมื่อรหัสผ่านยาวกว่านี้ ส่วนที่เหลือจะถูกละเลย
โครงสร้างของ hash
$2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy
2b: เวอร์ชันอัลกอริทึม10: cost factor, 2¹⁰ = 1,024 รอบN9qo8uLOickgx2ZMRZoMye: salt ยาว 22 อักขระ- 31 อักขระที่เหลือ: hash
คำถามที่พบบ่อย
ทำไมรหัสผ่านเดิมจึงได้ hash ต่างกันทุกครั้ง
bcrypt สร้าง salt สุ่ม 16 ไบต์ใหม่ทุกครั้งและเก็บไว้ใน hash (22 อักขระหลัง cost) การตรวจจะอ่าน salt จาก hash แล้วคำนวณใหม่ จึงตรวจผ่านได้ทุก hash
ถอดรหัส bcrypt ได้ไหม
ไม่ bcrypt เป็นแฮชทางเดียว วิธีตรวจมีเพียงแฮชรหัสผ่านที่ลองแล้วเปรียบเทียบ เว็บไซต์ที่อ้างว่าถอด bcrypt ได้มักลองรหัสผ่านที่พบบ่อยทีละตัว
ควรใช้ cost factor เท่าไร
แนวทางทั่วไปคือให้การสร้าง hash หนึ่งครั้งใช้เวลาประมาณ 100 มิลลิวินาทีบนเซิร์ฟเวอร์ ปัจจุบันมักอยู่ที่ 10–12 ค่าต่ำทำให้ brute force ง่าย ค่าสูงเกินไปทำให้เข้าสู่ระบบช้าและโหลดเซิร์ฟเวอร์
ต่างจาก MD5 หรือ SHA-256 อย่างไร
MD5 และ SHA-256 ออกแบบให้เร็ว GPU เดียวจึงลองได้หลายพันล้านครั้งต่อวินาที ทำให้ไม่เหมาะเก็บรหัสผ่านโดยลำพัง bcrypt ตั้งใจให้ช้าและมี salt ในตัว จึงออกแบบมาสำหรับเก็บรหัสผ่าน
รหัสผ่านถูกอัปโหลดไหม
ไม่ การแฮชและตรวจสอบทำด้วย JavaScript ในเบราว์เซอร์และทำงานออฟไลน์ได้
ความเป็นส่วนตัว
เครื่องมือนี้ทำงานในเบราว์เซอร์ของคุณทั้งหมด ไฟล์และข้อความของคุณได้รับการประมวลผลบนอุปกรณ์ของคุณ และจะไม่ถูกอัปโหลดไปยังเซิร์ฟเวอร์ของเรา