รหัสผ่านแบบสุ่มที่ประกอบด้วยตัวอักษร ตัวเลข และสัญลักษณ์ ผ่าน crypto.getRandomValues.
เครื่องมือสร้างรหัส TOTP/HOTP
เครื่องมือนี้ใช้ภาษาอังกฤษ; หน้านี้อธิบายด้วยภาษาของคุณ
ใช้เครื่องมือสร้างรหัส TOTP/HOTP
หน้าที่ของมันคืออะไร
คำนวณรหัสผ่านใช้ครั้งเดียวแบบอิงเวลา (TOTP) หรือแบบอิงตัวนับ (HOTP) สำหรับรหัสลับ Base32 ตามวิธีที่แอปยืนยันตัวตนใช้ และตรวจสอบว่ารหัสที่ป้อนมาตรงกับรหัสที่คำนวณได้หรือไม่ มีประโยชน์สำหรับการทดสอบการตั้งค่า 2FA ของคุณเอง
ระบบนี้ทำงานทั้งหมดในเบราว์เซอร์ของคุณ: ข้อมูลที่คุณป้อนจะไม่ถูกส่งขึ้นเซิร์ฟเวอร์เลย
วิธีใช้เครื่องมือสร้างรหัส TOTP/HOTP
- ป้อนรหัสลับ. คัดลอกรหัสลับ Base32 ของบัญชีทดสอบของคุณเองมาวางลงในช่อง "Secret key (Base32)" หรือกดปุ่ม "Random" เพื่อสร้างรหัสลับใหม่ที่มีความยาว 32 ตัวอักษร
- ปรับให้ตรงกับการตั้งค่าของแอปของคุณ. เลือกประเภทรหัส (TOTP ที่อิงตามเวลา หรือ HOTP ที่อิงตามตัวนับ), อัลกอริทึม และจำนวนหลัก ส่วนใหญ่แอปยืนยันตัวตนใช้ TOTP, HMAC-SHA-1 และ 6 หลัก
- แสดงรหัส. สำหรับ TOTP ให้กด Start TOTP: รหัสจะปรากฏพร้อมการนับถอยหลัง และจะถูกคำนวณใหม่ทุกวินาที สำหรับ HOTP ให้ตั้งตัวนับแล้วกด Show HOTP code; กด Next เพื่อย้ายไปยังตัวนับถัดไป
- ตรวจสอบรหัส. ป้อนรหัสจากแอปหรือเซิร์ฟเวอร์ของคุณลงในช่อง "ตรวจสอบรหัส" แล้วกด "ตรวจสอบ" ผลลัพธ์จะระบุว่า รหัสนั้นตรงกันหรือไม่ และตรงกับช่วงเวลาหรือตัวนับใด
- หยุดและเคลียร์. เมื่อเสร็จแล้ว ให้กดปุ่ม Stop; รหัสสุดท้ายจะยังคงแสดงอยู่บนหน้าจอ ให้คุณลบข้อมูลในช่องลับด้วยตัวเอง
ตัวอย่าง
รหัสลับสำหรับการทดสอบ RFC 6238
GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ412568นี่คือรหัสทดสอบ RFC 6238 ที่ได้เผยแพร่แล้ว คือ 12345678901234567890 ในรูปแบบ Base32. หน้านี้แสดงรหัส 6 หลักปัจจุบันและจำนวนวินาทีจนถึงรหัสถัดไป ซึ่งเป็นรหัสเดียวกันที่แอปยืนยันตัวตนแสดงสำหรับรหัสลับนี้; เมื่อเปลี่ยนไปใช้ HOTP ด้วยตัวนับ 0 จะแสดงค่า 755224 ซึ่งเป็นค่าทดสอบ RFC 4226 ที่แรก
สิ่งที่ระบบตรวจสอบ
| สัญญาณ | ความหมายของคำนี้คืออะไร |
|---|---|
| รหัส | HMAC ของขั้นตอนเวลา (TOTP) หรือตัวนับ (HOTP) ที่ถูกตัดเหลือ 6 หรือ 8 หลัก ตามที่ระบุใน RFC 4226 และ RFC 6238 มันจะตรงกับแอปได้ก็ต่อเมื่อประเภท อัลกอริทึม และจำนวนหลักตรงกัน |
| อัปเดตทุก Ns · ก้าวเวลา N | จำนวนวินาทีที่เหลืออยู่ในช่วงเวลา 30 วินาทีปัจจุบัน และหมายเลขขั้นตอน ซึ่งถูกนำมาจากนาฬิกาของอุปกรณ์ของคุณ หากนาฬิกาไม่ตรงเวลา จะแสดงรหัสก่อนหน้าหรือรหัสถัดไป |
| กดปุ่ม N · กด Next | ในโหมด HOTP รหัสจะเกี่ยวข้องกับตัวนับนั้น รหัสแต่ละตัวจะถูกใช้เพียงครั้งเดียว และเซิร์ฟเวอร์จะรอตัวนับถัดไป |
| ไม่ใช่ Base32: ... | รหัสลับนี้ประกอบด้วยตัวอักษรและตัวเลขนอกเหนือจาก A–Z และ 2–7 เช่น 0, 1, 8 หรือ 9 ส่วนช่องว่าง เครื่องหมายขีดกลาง และ = จะถูกละเว้น และตัวอักษรตัวเล็กสามารถใช้ได้ |
| ความลับมีเพียง N บิตเท่านั้น | รหัสลับนี้มีความยาวสั้นกว่า 128 บิต (26 ตัวอักษร Base32) ตามที่ RFC 4226 กำหนด รหัสยังคงถูกแสดงอยู่ แต่รหัสลับแบบนี้ถูกเดาได้ง่ายขึ้น |
| ถูกต้อง: ตรงกับ ... | ตรวจสอบว่าพบรหัสสำหรับขั้นตอนเวลาปัจจุบันหรือตัวนับ HOTP ในสนามแล้วหรือไม่ |
| ใช้ได้สำหรับขั้นตอนก่อนหรือขั้นตอนถัดไป | รหัสนี้เกี่ยวข้องกับช่วงเวลา 30 วินาทีก่อนหรือหลังปัจจุบัน (แสดงด้วยสีเหลืองอำพัน) โดยทั่วไปจะมีความแตกต่างเล็กน้อยในเวลาของทั้งสองอุปกรณ์ |
| ไม่พบผลลัพธ์ที่ตรงกัน | ทั้งขั้นตอนเวลาที่ตรวจสอบแล้วและตัวนับต่างไม่ตรงกัน โปรดตรวจสอบรหัสลับ นาฬิกา อัลกอริทึม และจำนวนหลัก |
ตัวอย่างเพิ่มเติม
กุญแจทดสอบ RFC 4226, HOTP
GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQด้วยประเภทรหัส HOTP, HMAC-SHA-1, 6 หลัก และตัวนับ 0 รหัสคือ 755224; Next ให้ค่า 287082 สำหรับตัวนับ 1 ซึ่งเป็นค่าทดสอบตาม RFC 4226 ที่เผยแพร่แล้ว
ตรวจสอบรหัสที่นับไปข้างหน้าหนึ่งตัว
GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQในโหมด HOTP กับตัวนับ 0 เมื่อป้อน 287082 ลงในช่อง "Verify a code" จะแสดงผลว่า: "Valid for counter 1, 1 ahead of the counter field."
ไม่ใช่รหัสลับ Base32
0189เกิดข้อผิดพลาดพร้อมข้อความ Not Base32: “0”, “1”, “8”, “9”, เนื่องจาก Base32 ใช้เพียงตัวอักษร A–Z และตัวเลข 2–7 เท่านั้น
คำถามที่พบบ่อย
มันคำนวณอะไรกันแน่?
รหัส TOTP ที่คำนวณจากเวลาปัจจุบันในขั้นละ 30 วินาที (RFC 6238) หรือรหัส HOTP สำหรับตัวนับที่คุณตั้งไว้ (RFC 4226) โดยใช้ HMAC-SHA-1, SHA-256 หรือ SHA-512 และมี 6 หรือ 8 ตัวเลข; แอปยืนยันตัวตนส่วนใหญ่ใช้ SHA-1 และ 6 ตัวเลข ระบบตรวจสอบรหัสจะลองช่วงเวลาปัจจุบันและช่วงเวลาหนึ่งขั้นทั้งด้านซ้ายและขวา หรือตัวนับ HOTP และ 9 ตัวนับถัดไป และรหัสลับที่มีตัวอักษรนอกเหนือจาก A-Z และ 2-7 จะถูกปฏิเสธพร้อมข้อความแจ้งเตือน
รหัส TOTP สามารถป้องกันการถูกฟิชชิ่งได้หรือไม่?
ไม่ทั้งหมด ชุดเครื่องมือฟิชชิ่งแบบ Adversary-in-the-middle จะส่งรหัสไปยังเว็บไซต์จริงทันทีที่คุณพิมพ์ ดังนั้นรหัสจึงถูกบันทึกพร้อมกับรหัสผ่าน; ส่วน passkeys และกุญแจความปลอดภัย FIDO2 สามารถป้องกันการโจมตีนี้ได้ เนื่องจากถูกผูกกับโดเมนจริง
รหัสลับนี้ถูกส่งไปหรือเก็บไว้ที่ไหนบ้างไหม?
ไม่ครับ รหัสจะถูกคำนวณในเบราว์เซอร์ของคุณโดยใช้ Web Crypto API และรหัสลับจะไม่ถูกส่งขึ้นหรือบันทึกไว้เลย TOTP ขึ้นอยู่กับนาฬิกาของอุปกรณ์ของคุณ ดังนั้น หากนาฬิกาไม่ตรงกัน รหัสที่ได้ก็จะแตกต่างกัน
ฉันสามารถตรวจสอบรหัสเหล่านี้กับ RFC ได้อย่างไร?
ใช้รหัสทดสอบ 12345678901234567890 ในรูปแบบ Base32 คือ GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ. ในโหมด HOTP ตัวนับ 0 ให้ค่า 755224 และตัวนับ 1 ให้ค่า 287082 (RFC 4226) RFC 6238 ระบุค่า 94287082 สำหรับ 8 หลัก ณ เวลา 59 วินาทีหลังวันที่ 1 มกราคม 1970 UTC; โหมด TOTP ใช้เวลาปัจจุบันเสมอ
ความแตกต่างระหว่าง TOTP และ HOTP คืออะไร?
HOTP (RFC 4226) นับจำนวนการใช้งาน: แต่ละรหัสจะเชื่อมโยงกับตัวนับที่เพิ่มขึ้นทีละหนึ่ง ส่วน TOTP (RFC 6238) คือ HOTP ที่ตัวนับถูกตั้งค่าให้สอดคล้องกับช่วงเวลา 30 วินาทีปัจจุบัน ดังนั้นรหัสจะเปลี่ยนแปลงตามเวลา
ทำไมแอปของฉันจึงแสดงรหัสที่ต่างออกไป?
ตรวจสอบนาฬิกาก่อน เพราะความแตกต่างเพียง 30 วินาทีก็ทำให้รหัสเปลี่ยนไป จากนั้นตรวจสอบรหัสลับว่ามีข้อผิดพลาดในการพิมพ์หรือไม่ และบัญชีนั้นใช้ SHA-256, SHA-512, 8 หลัก หรือตัวนับแทนเวลาหรือไม่ แล้วตั้งค่าตัวเลือกเดียวกันที่นี่
ผมควรใส่รหัสลับ 2FA ที่จริงไว้ที่นี่ไหม?
หลีกเลี่ยงการทำเช่นนี้ครับ รหัสลับจะยังคงอยู่ในเบราว์เซอร์ของคุณ แต่ใครก็ตามที่เห็นหรือคัดลอกรหัสนั้นสามารถสร้างรหัสยืนยันตัวตนของคุณได้ จนกว่าคุณจะตั้งค่าระบบยืนยันตัวตนสองขั้นตอน (2FA) ใหม่สำหรับบัญชีนั้น หากต้องการย้ายระบบยืนยันตัวตนสองขั้นตอน (2FA) ไปยังโทรศัพท์เครื่องใหม่ ให้ใช้ตัวเลือกการโอนย้ายหรือการตั้งค่าระบบยืนยันตัวตนสองขั้นตอน (2FA) ใหม่ของบัญชีนั้นเอง