เครื่องมือสร้างรหัสผ่านคือเครื่องมือสำหรับสร้างรหัสผ่านสุ่มที่ไม่สามารถคาดเดาได้ แตกต่างจากรหัสผ่านที่มนุษย์ออกแบบ เครื่องมือสร้างรหัสผ่านที่แท้จริงใช้ **ตัวสร้างตัวเลขสุ่มเทียมที่ปลอดภัยทางการเข้ารหัส (CSPRNG)** เพื่อเลือกตัวอักษรแบบสุ่มจากกลุ่มตัวอักษรที่กำหนด หลีกเลี่ยงรูปแบบที่คาดเดาได้ซึ่งมีอยู่ตามธรรมชาติเมื่อมนุษย์ตั้งรหัสผ่าน (ชื่อ+วันเกิด ปุ่มต่อเนื่องบนแป้นพิมพ์เช่น qwerty ชื่อบริษัท+ปี ฯลฯ) ซึ่งจะช่วยลดความเสี่ยงจากการโจมตีแบบ credential stuffing การโจมตีด้วยพจนานุกรม และการแคร็กแบบ brute force ได้อย่างมาก
**ทำไมไม่สามารถใช้ Math.random()**: สถานะภายในของตัวสร้างตัวเลขสุ่มเทียมทั่วไปสามารถถูกคาดเดาย้อนกลับได้จากผลลัพธ์จำนวนเล็กน้อย ผู้โจมตีสามารถคาดเดาตัวเลข «สุ่ม» ที่สร้างขึ้นในภายหลังได้ เครื่องมือนี้ใช้ crypto.getRandomValues() จาก Web Crypto API ของเบราว์เซอร์ ซึ่งเรียกใช้ CSPRNG ระดับระบบปฏิบัติการในระดับล่าง (เช่น getrandom ของ Linux, SecRandomCopyBytes ของ macOS, BCryptGenRandom ของ Windows) ตัวเลขสุ่มที่สร้างขึ้นผ่านการทดสอบความสุ่มทางการเข้ารหัส ไม่สามารถคาดเดาได้
**แกนหลักของความแข็งแรงรหัสผ่านคือเอนโทรปี**: เอนโทรปี = log₂(ขนาดกลุ่มตัวอักษร^ความยาวรหัสผ่าน) หน่วยเป็น bit ตัวอย่างเช่น รหัสผ่าน 16 ตัวอักษรถูกเลือกแบบสุ่มจาก 94 ตัวอักษร ASCII ที่พิมพ์ได้ เอนโทรปีประมาณ 104 bit ซึ่งหมายความว่าผู้โจมตีโดยเฉลี่ยต้องลอง 2¹⁰³ ครั้งจึงจะพบรหัสผ่านที่ถูกต้อง — แม้จะลอง 1 ล้านล้านครั้งต่อวินาทีก็ต้องใช้เวลาประมาณ 200 พันล้านปี
**วลีรหัสผ่านจำง่าย (Passphrase)**: ประกอบด้วยคำหลายคำที่ถูกเลือกแบบสุ่ม (เช่น Brave-Cloud-Star42) แม้ว่าจะดู «เรียบง่าย» กว่ารหัสผ่านสุ่ม แต่ถ้าคำถูกเลือกแบบสุ่มอย่างแท้จริง เอนโทรปีรวมสามารถถึงมากกว่า 60 bit ซึ่งปลอดภัยเพียงพอสำหรับสถานการณ์ส่วนใหญ่ และจำได้ง่ายกว่ารหัสผ่านสุ่มที่มีความแข็งแรงเท่ากันมาก นี่ยังเป็นแนวคิดหลักของการ์ตูนคลาสสิก XKCD #936 และวิธีการ Diceware
**รหัสผ่านทั้งหมดถูกสร้างในเครื่องในเบราว์เซอร์** ไม่ส่งไปยังเซิร์ฟเวอร์ใดๆ เครื่องมือนี้ยังให้การตรวจสอบความแข็งแรง: การคำนวณเอนโทรปี การประเมินเวลาแคร็กแบบ brute force การตรวจจับรูปแบบรหัสผ่านอ่อนแอ (ตัวอักษรซ้ำ ตัวเลข/ตัวอักษรต่อเนื่อง การจับคู่กับรหัสผ่านอ่อนแอทั่วไป) ช่วยให้คุณเข้าใจความแข็งแรงความปลอดภัยที่แท้จริงของรหัสผ่านที่สร้างขึ้น