Về công cụ này
TOTP (mật khẩu dùng một lần dựa trên thời gian, RFC 6238) là thuật toán đằng sau các mã sáu chữ số hiển thị bởi Google Authenticator, Microsoft Authenticator, Authy và hầu hết các thiết lập xác thực hai yếu tố kiểu "quét mã QR này". Nó hoạt động bằng cách kết hợp một khóa bí mật dùng chung với thời gian hiện tại (làm tròn xuống theo một khung cố định, thường là 30 giây), rồi đưa kết quả qua HMAC — cùng cấu trúc mà HOTP của RFC 4226 sử dụng, chỉ khác là dùng bộ đếm suy ra từ thời gian thay vì bộ đếm tăng dần. Vì cả hai bên (thiết bị của bạn và máy chủ) đều biết bí mật và có thể đọc đồng hồ, họ tính toán độc lập ra cùng một mã mà không bao giờ truyền nó đi.
Công cụ này chạy toàn bộ thuật toán RFC 6238 phía máy khách bằng cách sử dụng triển khai HMAC gốc của WebCrypto trên trình duyệt: dán (hoặc tạo) một bí mật được mã hóa Base32, và nó suy ra mã hiện tại theo thời gian thực, làm mới mỗi giây và chuyển đổi đúng lúc khung 30 giây kết thúc. Công cụ này dành cho các nhà phát triển muốn kiểm tra triển khai TOTP, thử nghiệm luồng onboarding, hoặc muốn hiểu cách các mã xác thực thực sự được tính toán — không phải để lưu trữ bí mật 2FA thật của tài khoản bạn.
Câu hỏi thường gặp
Đây có phải là thuật toán giống với Google Authenticator không?
Có — công cụ này triển khai TOTP RFC 6238 với SHA-1 (mặc định), chính xác là những gì Google Authenticator, Authy, Microsoft Authenticator và hầu hết các ứng dụng 2FA sử dụng. Với cùng một secret, công cụ này và các ứng dụng đó sẽ tạo ra mã giống hệt nhau tại cùng một thời điểm.
Tại sao mã của tôi không còn khớp với ứng dụng xác thực nữa?
Hai nguyên nhân phổ biến nhất: đồng hồ thiết bị của bạn bị lệch (TOTP dựa trên thời gian, nên cả hai bên cần đồng hồ chính xác — hãy đồng bộ thời gian hệ thống), hoặc bạn đã gõ/dán secret Base32 hơi sai. Hãy kiểm tra lại secret từng ký tự một, vì TOTP không có cách nào tích hợp sẵn để phát hiện lỗi gõ trong chính secret.