ความปลอดภัยส่วนบุคคล

เครื่องมือสร้างรหัส TOTP/HOTP

ทำงานในเครื่อง

เครื่องมือนี้ใช้ภาษาอังกฤษ; หน้านี้อธิบายด้วยภาษาของคุณ

ใช้เครื่องมือสร้างรหัส TOTP/HOTP

หน้าที่ของมันคืออะไร

คำนวณรหัสผ่านใช้ครั้งเดียวแบบอิงเวลา (TOTP) หรือแบบอิงตัวนับ (HOTP) สำหรับรหัสลับ Base32 ตามวิธีที่แอปยืนยันตัวตนใช้ และตรวจสอบว่ารหัสที่ป้อนมาตรงกับรหัสที่คำนวณได้หรือไม่ มีประโยชน์สำหรับการทดสอบการตั้งค่า 2FA ของคุณเอง

ระบบนี้ทำงานทั้งหมดในเบราว์เซอร์ของคุณ: ข้อมูลที่คุณป้อนจะไม่ถูกส่งขึ้นเซิร์ฟเวอร์เลย

วิธีใช้เครื่องมือสร้างรหัส TOTP/HOTP

  1. ป้อนรหัสลับ. คัดลอกรหัสลับ Base32 ของบัญชีทดสอบของคุณเองมาวางลงในช่อง "Secret key (Base32)" หรือกดปุ่ม "Random" เพื่อสร้างรหัสลับใหม่ที่มีความยาว 32 ตัวอักษร
  2. ปรับให้ตรงกับการตั้งค่าของแอปของคุณ. เลือกประเภทรหัส (TOTP ที่อิงตามเวลา หรือ HOTP ที่อิงตามตัวนับ), อัลกอริทึม และจำนวนหลัก ส่วนใหญ่แอปยืนยันตัวตนใช้ TOTP, HMAC-SHA-1 และ 6 หลัก
  3. แสดงรหัส. สำหรับ TOTP ให้กด Start TOTP: รหัสจะปรากฏพร้อมการนับถอยหลัง และจะถูกคำนวณใหม่ทุกวินาที สำหรับ HOTP ให้ตั้งตัวนับแล้วกด Show HOTP code; กด Next เพื่อย้ายไปยังตัวนับถัดไป
  4. ตรวจสอบรหัส. ป้อนรหัสจากแอปหรือเซิร์ฟเวอร์ของคุณลงในช่อง "ตรวจสอบรหัส" แล้วกด "ตรวจสอบ" ผลลัพธ์จะระบุว่า รหัสนั้นตรงกันหรือไม่ และตรงกับช่วงเวลาหรือตัวนับใด
  5. หยุดและเคลียร์. เมื่อเสร็จแล้ว ให้กดปุ่ม Stop; รหัสสุดท้ายจะยังคงแสดงอยู่บนหน้าจอ ให้คุณลบข้อมูลในช่องลับด้วยตัวเอง

ตัวอย่าง

รหัสลับสำหรับการทดสอบ RFC 6238

ข้อมูลเข้า
GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ
ผลลัพธ์ (บันทึกเมื่อวันที่2026-10-20)
412568

นี่คือรหัสทดสอบ 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) ใหม่ของบัญชีนั้นเอง

คำอธิบายศัพท์

การวิจัยของ PhishDestroy