Security Tools

ความปลอดภัยของรหัสผ่านในเบราว์เซอร์: สร้าง, เข้ารหัส, แฮช และทดสอบ — ไม่ต้องใช้เซิร์ฟเวอร์

คู่มือปฏิบัติสำหรับเครื่องมือจัดการรหัสผ่านและการเข้ารหัสบนเบราว์เซอร์ — สร้างรหัสผ่านที่แข็งแกร่ง, เข้ารหัสข้อความด้วย AES-256, แฮชรหัสผ่านด้วย PBKDF2 และตรวจสอบความแข็งแกร่งของรหัสผ่านได้ทันที

7 นาทีในการอ่าน

กุญแจล็อคบนแป้นพิมพ์แล็ปท็อปแสดงถึงความปลอดภัยดิจิทัล

นักพัฒนาและผู้ใช้ที่ใส่ใจด้านความปลอดภัยทุกคนต่างต้องการเครื่องมือชุดเดียวกัน: สร้างรหัสผ่านที่แข็งแกร่ง, เข้ารหัสข้อความที่ละเอียดอ่อน, แฮชรหัสผ่านเพื่อจัดเก็บ หรือตรวจสอบว่าแฮชตรงกันหรือไม่ สิ่งเหล่านี้เคยต้องติดตั้ง OpenSSL หรือแอปพลิเคชันเฉพาะทาง แต่ปัจจุบัน Web Crypto API มีความสามารถเพียงพอที่จะทำทุกอย่างได้ภายในเบราว์เซอร์ — โดยไม่ต้องส่งข้อมูลไปยังเซิร์ฟเวอร์และไม่มีข้อมูลใดออกจากอุปกรณ์ของคุณเลย

นี่คือภาพรวมของเครื่องมือสำคัญและวิธีใช้งานแต่ละอย่างอย่างมีประสิทธิภาพ

1. Password Generator: วิธีที่ถูกต้องในการสร้างรหัสผ่าน

มนุษย์สร้างรหัสผ่านแบบสุ่มได้แย่มาก เราใช้รูปแบบต่างๆ โดยไม่รู้ตัว — คำจากพจนานุกรม, ชื่อคน, ปี, หรือลำดับแป้นพิมพ์อย่าง qwerty123 เครื่องมือสร้างรหัสผ่านแบบสุ่มจริงๆ จะหลีกเลี่ยงสิ่งเหล่านี้ทั้งหมด

Password Generator ของเราใช้ crypto.getRandomValues() — ตัวสร้างตัวเลขสุ่มแบบปลอดภัยทางการเข้ารหัสที่มีอยู่ในเบราว์เซอร์สมัยใหม่ทุกตัว สิ่งที่ทำให้มันแตกต่างจาก Math.random():

  • Math.random() เป็นลำดับสุ่มเทียม — คาดเดาได้หากรู้ค่า seed
  • crypto.getRandomValues() ดึงค่าจาก entropy ระดับ OS — ไม่สามารถคาดเดาได้จริงๆ

การตั้งค่าที่แนะนำ:

กรณีการใช้งาน ความยาว ตัวเลือก
เข้าสู่ระบบเว็บไซต์ 16+ ตัวพิมพ์ใหญ่, ตัวพิมพ์เล็ก, ตัวเลข, สัญลักษณ์
รหัสผ่านฐานข้อมูล 24+ ชุดอักขระทั้งหมด
วลีรหัสผ่านสำหรับคีย์เข้ารหัส 32+ ชุดอักขระทั้งหมด
PIN (ปลดล็อคอุปกรณ์) 8+ ตัวเลขเท่านั้น

สิ่งที่ควรหลีกเลี่ยง:

  • รหัสผ่านที่สั้นกว่า 12 ตัวอักษร (สามารถถอดรหัสได้ด้วย GPU สมัยใหม่)
  • รหัสผ่านที่เป็นสัญลักษณ์เท่านั้น (หลายบริการไม่รองรับ)
  • รหัสผ่านที่เคยใช้งานที่ไหนมาก่อน

2. Password Strength Checker: ตรวจสอบก่อนที่จะใช้งาน

ก่อนตั้งรหัสผ่าน — หรือเมื่อตรวจสอบรหัสผ่านที่มีอยู่ — ลองผ่าน Password Strength Checker ของเราดู โดยจะประเมิน:

  • คะแนนความยาว — ยิ่งยาวยิ่งดีเสมอ
  • ความหลากหลายของชุดอักขระ — ตัวพิมพ์เล็ก, ตัวพิมพ์ใหญ่, ตัวเลข, สัญลักษณ์
  • รูปแบบทั่วไป — คำจากพจนานุกรม, ลำดับแป้นพิมพ์, อักขระซ้ำ
  • ค่า Entropy (บิต) — การวัดทางคณิตศาสตร์ว่ายากแค่ไหนในการเดา

คะแนน entropy เป็นตัววัดที่ซื่อสัตย์ที่สุด รหัสผ่านที่มี entropy 128 บิตจะใช้เวลานานกว่าอายุของจักรวาลในการโจมตีแบบ brute force ด้วยความเร็วการคำนวณในปัจจุบัน

"password"          → Entropy: ~11 bits  ❌ แย่มาก
"P@ssw0rd"          → Entropy: ~18 bits  ❌ ยังแย่อยู่ (มีรูปแบบ)
"correct-horse-bat" → Entropy: ~44 bits  ⚠ ปานกลาง (คำจากพจนานุกรม)
"Kx9#mP2$vL7nQw"   → Entropy: ~87 bits  ✅ แข็งแกร่ง
"mQ3$kX9#nP7&vL2@" → Entropy: ~104 bits ✅ แข็งแกร่งมาก

3. AES-256 Encryption: ปกป้องข้อความด้วยการเข้ารหัสระดับทหาร

ต้องการจัดเก็บโน้ตลับ, เข้ารหัสค่าคอนฟิก หรือส่งข้อความที่ละเอียดอ่อนผ่านช่องทางที่ไม่ปลอดภัย? เครื่องมือ AES Encrypt / Decrypt ของเราใช้ AES-256-GCM — cipher เดียวกับที่ธนาคาร, รัฐบาล และแอปส่งข้อความแบบ end-to-end ใช้งาน

หลักการทำงานของ AES-256-GCM (อธิบายแบบย่อ)

  1. วลีรหัสผ่านของคุณถูกประมวลผลผ่าน PBKDF2 จำนวน 200,000 รอบเพื่อสร้างคีย์ขนาด 256 บิต
  2. IV (initialization vector) แบบสุ่มถูกสร้างขึ้นสำหรับการเข้ารหัสแต่ละครั้ง — ทำให้ข้อความเดิมเข้ารหัสได้ผลลัพธ์ต่างกันทุกครั้ง
  3. ข้อความถูกเข้ารหัสและสร้าง authentication tag — ตรวจจับการแก้ไขข้อมูล
  4. ผลลัพธ์ถูกเข้ารหัสแบบ base64: IV + tag + ciphertext
Plaintext: "API_KEY=sk_live_abc123"
Passphrase: "my-strong-passphrase"
           ↓
Encrypted: "a3Fm9K2...base64...Xp7nQ=="

คุณสมบัติด้านความปลอดภัย:

  • ✅ Zero knowledge — ไม่มีข้อมูลถูกส่งไปยังเซิร์ฟเวอร์ใดๆ
  • ✅ Authenticated encryption — การถอดรหัสจะล้มเหลวหาก ciphertext ถูกแก้ไข
  • ✅ Salt + IV แบบสุ่ม — ข้อมูลเดิมให้ผลลัพธ์ต่างกันในแต่ละครั้ง
  • ✅ 200,000 รอบ PBKDF2 — ทนทานต่อการโจมตีแบบ brute force บนวลีรหัสผ่าน

การใช้งานจริง:

  • เข้ารหัสค่าใน .env ก่อนจัดเก็บในแอปโน้ต
  • แชร์รหัสผ่านกับเพื่อนร่วมงานผ่านอีเมล/Slack (ส่ง ciphertext และแชร์วลีรหัสผ่านผ่านช่องทางอื่น)
  • เข้ารหัสบันทึกส่วนตัวหรือโน้ตส่วนตัว
  • จัดเก็บ API key ในสเปรดชีตในรูปแบบเข้ารหัส

4. Password Hash Generator: PBKDF2 สำหรับการจัดเก็บที่ปลอดภัย

หากคุณกำลังสร้างแอปที่จัดเก็บรหัสผ่านของผู้ใช้ คุณต้องไม่จัดเก็บรหัสผ่านแบบ plaintext — หรือแฮชที่อ่อนแออย่าง MD5/SHA-1 Password Hash Generator ของเราใช้ PBKDF2-SHA256 เพื่อสร้างแฮชรหัสผ่านที่ปลอดภัย

ทำไมต้องใช้ PBKDF2 แทน MD5/SHA-256?

แฮช เวลาต่อการเดาหนึ่งครั้ง (GPU) จำนวนรอบ ผลสรุป
MD5 0.001ms 1 ❌ ใช้ไม่ได้แล้ว
SHA-256 0.002ms 1 ❌ เร็วเกินไป
PBKDF2-SHA256 200ms+ 200,000 ✅ เหมาะสม
bcrypt (cost 12) 300ms+ adaptive ✅ เหมาะสม

จุดประสงค์ทั้งหมดของการแฮชรหัสผ่านคือทำให้การเดาแต่ละครั้งมีต้นทุนสูง แฮชที่เร็วนั้นอันตรายอย่างมากสำหรับรหัสผ่าน

รูปแบบผลลัพธ์ของแฮช:

pbkdf2$200000$<salt>$<hash>

salt ถูกสร้างแบบสุ่มต่อแฮชหนึ่งค่า ซึ่งหมายความว่ารหัสผ่านเดิมจะให้แฮชต่างกันในแต่ละครั้ง — ป้องกันการโจมตีด้วย rainbow table


5. TOTP / 2FA Generator: ทดสอบรหัส Authenticator ของคุณ

TOTP / 2FA Generator ของเราสร้าง time-based one-time password ที่เข้ากันได้กับ Google Authenticator, Authy และแอป authenticator ที่รองรับ RFC 6238 ทุกตัว ใส่ secret key แบบ Base32 และรับรหัส 6 หลักพร้อม countdown

กรณีการใช้งาน:

  • ตรวจสอบว่าการใช้งาน TOTP บนเซิร์ฟเวอร์ของคุณสร้างรหัสที่ถูกต้อง
  • ทดสอบการตั้งค่า 2FA ก่อนเผยแพร่ให้ผู้ใช้
  • สร้างรหัสสำหรับ secret ที่ลงทะเบียนไว้แล้ว (เป็นวิธีสำรอง)

รหัส TOTP เปลี่ยนทุก 30 วินาที ผูกกับเวลา UTC ปัจจุบัน และเป็นไปไม่ได้ทางคณิตศาสตร์ที่จะคาดเดาโดยไม่มี secret key


6. Diceware Passphrases: จดจำง่ายและแข็งแกร่งทางคณิตศาสตร์

Diceware Password Generator ของเราสร้าง passphrase จาก EFF wordlist — แนวทางเดียวกับที่นักวิจัยด้านความปลอดภัยใช้สำหรับรหัสผ่านหลักและคีย์เข้ารหัสดิสก์

ตัวอย่าง: correct-horse-battery-staple-voyage

ทำไม passphrase ถึงดีกว่ารหัสผ่านอักขระสุ่มสำหรับรหัสผ่านหลัก:

รหัสผ่าน Entropy ความง่ายในการจดจำ
Kx9#mP2$ (8 ตัวอักษร) ~52 bits ยากมาก
correct-horse-battery (3 คำ) ~58 bits ง่าย
correct-horse-battery-staple (4 คำ) ~77 bits ปานกลาง
correct-horse-battery-staple-voyage (5 คำ) ~96 bits พอรับได้

สำหรับรหัสผ่านหลักของ password manager — ที่คุณต้องจำและไม่ควรจดไว้ที่ไหน — passphrase แบบ diceware 5 คำคือสมดุลที่ดีที่สุดระหว่างความปลอดภัยและการจดจำ


รายการตรวจสอบความปลอดภัย

ตรวจสอบสิ่งเหล่านี้ก่อนนำระบบการยืนยันตัวตนใดๆ ไปใช้งาน:

  1. ✅ สร้างรหัสผ่านด้วย Password Generator — ใช้ crypto.getRandomValues()
  2. ✅ ตรวจสอบความแข็งแกร่งของรหัสผ่านด้วย Password Strength Checker — มุ่งเป้าที่ 80+ entropy bits สำหรับบัญชีสิทธิ์พิเศษ
  3. ✅ แฮชรหัสผ่านที่จัดเก็บด้วย PBKDF2, bcrypt หรือ Argon2 — ตรวจสอบรูปแบบผลลัพธ์ด้วย Password Hash Generator
  4. ✅ เข้ารหัสค่าที่ละเอียดอ่อนที่จัดเก็บด้วย AES Encrypt — ใช้ AES-256-GCM ไม่ใช่ AES-ECB
  5. ✅ เปิดใช้งาน 2FA และทดสอบรหัสด้วย TOTP Generator
  6. ✅ สำหรับรหัสผ่านหลัก ใช้ Diceware Generator — อย่างน้อย 5 คำขึ้นไป

ประเด็นสำคัญ: ทุกเครื่องมือในรายการนี้ทำงานทั้งหมดในเบราว์เซอร์ของคุณ รหัสผ่าน, ข้อความ plaintext และแฮชของคุณจะไม่มีวันออกจากอุปกรณ์ นี่ไม่ใช่แค่ฟีเจอร์ — มันคือมาตรฐานขั้นต่ำที่ยอมรับได้สำหรับเครื่องมือด้านความปลอดภัย