Bcrypt เป็นฟังก์ชันการแฮชรหัสผ่านที่ออกแบบมาให้ช้าและมีค่าใช้จ่ายในการคำนวณสูง ทำให้ทนทานต่อการโจมตีแบบ brute-force เป็นมาตรฐานอุตสาหกรรมสำหรับการจัดเก็บรหัสผ่านอย่างปลอดภัย
Bcrypt ทำงานอย่างไร
Bcrypt ใช้ไซเฟอร์ Blowfish กับ salt และปัจจัยต้นทุน ปัจจัยต้นทุน (รอบ) กำหนดว่าอัลกอริทึมจะทำซ้ำกี่ครั้ง - ทุกการเพิ่มขึ้นจะเพิ่มเวลาการคำนวณเป็นสองเท่า ทำให้การโจมตียากขึ้นแบบเอกซ์โพเนนเชียล
ทำไมต้องใช้ Bcrypt?
ไม่เหมือน MD5/SHA ที่เร็ว (ไม่ดีสำหรับรหัสผ่าน) bcrypt ช้าโดยตั้งใจ ทำให้การโจมตีแบบ brute-force ไม่สามารถทำได้จริง ต้นทุน 10 หมายถึง 2^10 (1,024) รอบ ซึ่งใช้เวลาประมาณ 100ms ในการแฮช - เล็กน้อยสำหรับการเข้าสู่ระบบแต่ทำลายล้างสำหรับผู้โจมตีที่ลองรหัสผ่านหลายพันล้าน
แนวทางปฏิบัติด้านความปลอดภัยที่ดีที่สุด
ใช้ต้นทุน 10-12 สำหรับแอปพลิเคชันส่วนใหญ่ ต้นทุน 10 เป็นขั้นต่ำที่แนะนำในปัจจุบัน ห้ามใช้ MD5 หรือ SHA-1 สำหรับรหัสผ่าน - มันถูกทำลายแล้ว ห้ามเก็บรหัสผ่านข้อความธรรมดา ใช้ bcrypt, Argon2 หรือ scrypt สำหรับการแฮชรหัสผ่านเสมอ