เครื่องสร้างรหัสผ่านที่ปลอดภัย
- ไม่ต้องสมัครสมาชิก
- ฟรี 100%
- ไม่เก็บข้อมูลบนเซิร์ฟเวอร์
รหัสผ่านสร้างด้วย crypto.getRandomValues() ซึ่งดึงค่าสุ่มระดับ Cryptographic จากระบบปฏิบัติการ และใช้เทคนิค Rejection Sampling เพื่อให้ทุกตัวอักษรมีโอกาสถูกเลือกเท่ากัน ไม่เอนไปทางตัวที่อยู่ต้น ๆ ของชุดอักขระ โค้ดของเว็บนี้ไม่มีการใช้ Math.random() ที่ใดเลย
ยาวแค่ไหนถึงพอ
ทุกตัวอักษรที่เพิ่มเข้าไปจะคูณจำนวนรหัสผ่านที่เป็นไปได้ ค่าเอนโทรปีที่วัดเป็นบิต คือวิธีเขียนตัวเลขนั้นแบบสั้น ๆ ทุกบิตที่เพิ่มขึ้นหมายถึงงานที่ผู้โจมตีต้องทำเพิ่มเป็นสองเท่า
| ความยาว | พิมพ์เล็กอย่างเดียว | ใหญ่ เล็ก ตัวเลข | ครบทั้งสี่แบบ |
|---|---|---|---|
| 8 | 38 บิต | 48 บิต | 52 บิต |
| 12 | 56 บิต | 71 บิต | 78 บิต |
| 16 | 75 บิต | 95 บิต | 104 บิต |
| 24 | 113 บิต | 143 บิต | 157 บิต |
| 32 | 150 บิต | 190 บิต | 209 บิต |
ลองอ่านตามแนวนอนแทนแนวตั้งแล้วจะเห็นชัด การเพิ่มจาก 8 ตัวเป็น 16 ตัวได้ผลมากกว่า การใส่สัญลักษณ์เข้าไปในรหัส 8 ตัวเยอะมาก ความยาวคือความแข็งแรงที่ราคาถูกที่สุด
ประมาณ 80 บิตขึ้นไปก็เกินกำลังการโจมตีแบบออฟไลน์ที่ทำได้จริงแล้ว ส่วนที่เกินจากนั้นคือเผื่อไว้ ซึ่งแทบไม่มีต้นทุนถ้าปล่อยให้โปรแกรมจัดการรหัสผ่านเป็นคนพิมพ์
ค่าสุ่มมาจากไหน
รหัสผ่านที่นี่สุ่มด้วย crypto.getRandomValues() ซึ่งเป็นช่องทางที่เบราว์เซอร์
ใช้ดึงค่าสุ่มระดับ cryptographic จากระบบปฏิบัติการ ตัวเดียวกับที่ใช้ตั้งต้นการเข้ารหัส TLS
โค้ดของเว็บนี้ไม่มีการใช้ Math.random() ที่ใดเลย เพราะมันเร็วและเดาได้
และการเดาได้คือความตายในเรื่องนี้
การแปลงค่าสุ่มให้เป็นเลขสุ่มในช่วงที่ต้องการมีอีกขั้นหนึ่งที่มองข้ามง่าย วิธีที่นึกออกก่อน คือหยิบเลข 32 บิตมาแล้วหารเอาเศษด้วยขนาดชุดอักขระ ซึ่งเอนเอียงอย่างแนบเนียน เพราะ 2³² หารด้วย 89 ไม่ลงตัว อักขระบางตัวจึงมีโอกาสออกมากกว่าตัวอื่นตลอดไป
เครื่องมือนี้ใช้เทคนิค Rejection Sampling แทน คือสุ่มค่ามา ถ้าตกอยู่ในช่วงเศษที่ไม่ลงตัว ก็ทิ้งแล้วสุ่มใหม่ ทุกอักขระจึงมีโอกาสเท่ากันเป๊ะ ซึ่งเป็นสมมติฐานที่ตัวเลขในตารางข้างบนใช้อยู่
สิ่งที่รหัสผ่านแข็งแรงป้องกันให้ไม่ได้
- การใช้ซ้ำ รหัสผ่าน 32 ตัวอักษรที่ใช้กับสองเว็บ จะแข็งแรงเท่ากับ ฐานข้อมูลของเว็บที่อ่อนแอกว่า
- การหลอกให้กรอก (phishing) ความยาวช่วยอะไรไม่ได้ถ้าคุณพิมพ์มันลงผิดที่ สิ่งที่ช่วยได้คือโปรแกรมจัดการรหัสผ่านที่ปฏิเสธการเติมให้เมื่อโดเมนไม่ตรง
- ข้อมูลรั่วจากฝั่งผู้ให้บริการ ซึ่งเป็นเหตุผลที่การยืนยันตัวตนสองชั้นมีอยู่
รหัสผ่านเป็นเพียงหนึ่งในหลายชั้นป้องกัน มันคือชั้นที่เครื่องมือนี้ช่วยได้ แต่ไม่ใช่ชั้นที่พังบ่อยที่สุด
คำถามที่พบบ่อย
รหัสผ่านที่สร้างขึ้นถูกส่งไปที่ไหนไหม
ไม่ รหัสผ่านถูกสร้างในเบราว์เซอร์ของคุณ ไม่ถูกส่งออกและไม่ถูกเก็บไว้ ไม่ว่าจะในคุกกี้หรือที่อื่น ปิดแท็บก็หายไปแล้ว
ควรตั้งรหัสผ่านยาวเท่าไร
ความยาวช่วยได้มากกว่าความหลากหลายของตัวอักษร 16 ตัวอักษรครบทั้งสี่ประเภทให้ราว 104 บิต ซึ่งเกินกำลังที่จะเดาสุ่มไหว ถ้าใช้โปรแกรมจัดการรหัสผ่านอยู่แล้ว ตั้งให้ยาวขึ้นก็ไม่ได้ลำบากอะไร
ต้องมีสัญลักษณ์ไหมรหัสผ่านถึงจะแข็งแรง
ไม่จำเป็น รหัสที่ยาวกว่าแต่ไม่มีสัญลักษณ์ อาจแข็งแรงกว่ารหัสสั้นที่มีสัญลักษณ์ ถ้าระบบไหนไม่รับสัญลักษณ์ ให้ปิดสัญลักษณ์แล้วเพิ่มความยาวแทน
ทำไมไม่มีเครื่องหมายคำพูดกับแบ็กสแลชในชุดสัญลักษณ์
เพราะ shell การส่งออก CSV และระบบตรวจสอบฟอร์ม มักทำให้อักขระพวกนี้เพี้ยน รหัสผ่านที่วางลงเครื่องมือของตัวเองไม่ได้ สร้างปัญหามากกว่าที่จะคุ้มกับอักขระที่เพิ่มมา