ตัวสร้าง Bcrypt
สร้างและตรวจสอบแฮชรหัสผ่าน bcrypt ออนไลน์ ค่าต้นทุนปรับได้ มี salt ในตัว ดูตัวอย่างแฮชแบบเรียลไทม์ ประมวลผลภายในเบราว์เซอร์ของคุณ
Bcrypt คืออะไร?
Bcrypt เป็นฟังก์ชันแฮชรหัสผ่านที่ออกแบบโดย Niels Provos และ David Mazières ตามรหัส Blowfish ออกแบบมาโดยเฉพาะสำหรับการจัดเก็บรหัสผ่านอย่างปลอดภัยและเป็นหนึ่งในอัลกอริทึมแฮชรหัสผ่านที่ใช้มากที่สุดในโลก
Bcrypt ทำงานอย่างไร?
Bcrypt รับรหัสผ่านและ salt เป็นอินพุต จากนั้นเรียกใช้กระบวนการตั้งค่าคีย์ที่มีค่าใช้จ่ายสูง (Eksblowfish) ซึ่งสร้างแฮชความยาวคงที่ แฮชประกอบด้วยตัวระบุอัลกอริทึม ค่าต้นทุน salt และค่าแฮชจริง
ค่าต้นทุนใน bcrypt คืออะไร?
ค่าต้นทุนคือตัวเลขตั้งแต่ 4 ถึง 31 ที่กำหนดจำนวนรอบของการตั้งค่าคีย์ การเพิ่มขึ้นแต่ละครั้งเพิ่มเวลาคำนวณเป็นสองเท่า ค่าต้นทุน 10 หมายถึง 2^10 = 1024 รอบ ค่าแนะนำคือ 10-12 สำหรับแอปพลิเคชันส่วนใหญ่
Salt คืออะไรและทำไมจึงสำคัญ?
Salt คือค่าสุ่ม 128 บิตที่ไม่ซ้ำกันสำหรับแต่ละแฮชรหัสผ่าน ป้องกันผู้โจมตีจากการใช้ตารางสายรุ้งที่คำนวณไว้ล่วงหน้าและรับประกันว่ารหัสผ่านที่เหมือนกันจะสร้างแฮชที่แตกต่างกัน Bcrypt สร้าง salt โดยอัตโนมัติและฝังไว้ในเอาต์พุตแฮช
Bcrypt ยังปลอดภัยในปี 2025 หรือไม่?
ใช่ Bcrypt ยังคงเป็นหนึ่งในอัลกอริทึมแฮชรหัสผ่านที่แนะนำ แม้ว่าจะมีอัลกอริทึมใหม่กว่าเช่น Argon2 แต่ Bcrypt ยังถือว่าปลอดภัยเมื่อใช้กับค่าต้นทุนที่เหมาะสม (12 หรือสูงกว่า)
ความยาวรหัสผ่านสูงสุดสำหรับ bcrypt คือเท่าไร?
Bcrypt มีความยาวอินพุตสูงสุด 72 ไบต์ รหัสผ่านที่ยาวกว่า 72 ไบต์จะถูกตัดอย่างเงียบๆ สำหรับรหัสผ่านที่ยาวกว่า พิจารณาการแฮชล่วงหน้าด้วย SHA-256 ก่อนใช้ bcrypt
Bcrypt เปรียบเทียบกับ MD5, SHA-256 และฟังก์ชันแฮชอื่นอย่างไร?
ต่างจาก MD5 และ SHA-256 ที่ออกแบบมาเพื่อความเร็ว Bcrypt ช้าโดยเจตนาและมีค่าใช้จ่ายในการคำนวณสูง ฟังก์ชันแฮชทั่วไปสามารถคำนวณได้หลายพันล้านครั้งต่อวินาที ทำให้เสี่ยงต่อการโจมตีแบบ brute-force
รูปแบบแฮช bcrypt คืออะไร?
แฮช bcrypt ตามรูปแบบ: $2b$cost$salt+hash ตัวอย่าง: $2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy คำนำหน้า $2b$ ระบุเวอร์ชันอัลกอริทึม ตามด้วยค่าต้นทุน salt 22 ตัวอักษร และแฮช 31 ตัวอักษร
ความแตกต่างระหว่าง $2a$, $2b$ และ $2y$ คืออะไร?
เหล่านี้เป็นตัวระบุเวอร์ชัน bcrypt $2a$ คือเวอร์ชันดั้งเดิม $2b$ แก้ไขปัญหาเล็กน้อยเกี่ยวกับการจัดการความยาวรหัสผ่านใน OpenBSD และ $2y$ คือตัวแปรเฉพาะของ PHP
การใช้ตัวสร้าง bcrypt ออนไลน์ปลอดภัยหรือไม่?
เมื่อการประมวลผลทำงานทั้งหมดในเบราว์เซอร์ของคุณ (ฝั่งไคลเอนต์) มันปลอดภัยอย่างสมบูรณ์ ไม่มีข้อมูลรหัสผ่านถูกส่งไปยังเซิร์ฟเวอร์ใดๆ เครื่องมือนี้ประมวลผลทุกอย่างในเครื่องโดยใช้ JavaScript
ควรเลือกค่าต้นทุนที่เหมาะสมอย่างไร?
ค่าต้นทุนควรสูงที่สุดเท่าที่จะเป็นไปได้ในขณะที่การสร้างแฮชยังเร็วในระดับที่ยอมรับได้ กฎที่ดี: เลือกค่าต้นทุนที่ทำให้การแฮชใช้เวลาประมาณ 250-500 มิลลิวินาทีบนเซิร์ฟเวอร์ของคุณ
Bcrypt สามารถใช้สำหรับการเข้ารหัสข้อมูลได้หรือไม่?
ไม่ได้ Bcrypt เป็นฟังก์ชันแฮชทางเดียว ไม่ใช่อัลกอริทึมการเข้ารหัส ไม่สามารถย้อนกลับเพื่อกู้คืนรหัสผ่านเดิม ออกแบบมาสำหรับการตรวจสอบรหัสผ่านเท่านั้น
ทำไม Bcrypt จึงช้าโดยออกแบบ?
Bcrypt ช้าโดยเจตนาเพื่อทำให้การโจมตีแบบ brute-force และพจนานุกรมมีค่าใช้จ่ายในการคำนวณสูง ในขณะที่ฟังก์ชันแฮชปกติสามารถประมวลผลรหัสผ่านหลายล้านรายการต่อวินาที Bcrypt ประมวลผลได้เพียงไม่กี่ร้อยรายการ
ฉันจะตรวจสอบรหัสผ่านกับแฮช bcrypt ได้อย่างไร?
ในการตรวจสอบ ดึง salt และค่าต้นทุนจากแฮชที่เก็บไว้ เรียกใช้ bcrypt ด้วยพารามิเตอร์เดียวกันกับรหัสผ่านอินพุต และเปรียบเทียบแฮชผลลัพธ์กับแฮชที่เก็บไว้ หากตรงกัน รหัสผ่านถูกต้อง