Tạo mã HOTP
Tạo mật khẩu dùng một lần HOTP cho bất kỳ bộ đếm nào từ khóa Base32, với SHA-1/256/512 và 6–8 chữ số. Liệt kê các mã tiếp theo; đã kiểm chứng theo vector RFC 4226.
Khóa mà dịch vụ hiển thị khi bạn bật 2FA. Có dấu cách hay chữ thường đều được.
HOTP (RFC 4226): HMAC của bộ đếm 8 byte với khóa, cắt động rồi lấy dư cho 10^số chữ số. Máy chủ và token mỗi bên giữ một bộ đếm tăng lên sau mỗi mã được dùng.
Chạy hoàn toàn trong trình duyệt. Dữ liệu của bạn không bao giờ bị tải lên.
Tạo mã HOTP là gì?
HOTP tạo một mật khẩu dùng một lần mới mỗi khi bộ đếm tăng lên, như cách YubiKey OATH-HOTP và một số token phần cứng sử dụng. Công cụ này tính mã cho bất kỳ giá trị bộ đếm nào và liệt kê các mã tiếp theo để bạn đồng bộ lại hoặc kiểm thử máy chủ.
Cách sử dụng Tạo mã HOTP
- Dán Khóa bí mật (Base32) hoặc nhấn Tạo khóa ngẫu nhiên.
- Đặt Thuật toán và Số chữ số.
- Nhập Bộ đếm và Số mã hiển thị.
- Sao chép mã đầu tiên hoặc đọc bảng bộ đếm → mã.
Ví dụ
Khóa GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ, SHA-1, 6 chữ số, bộ đếm 0
755224 (then 287082, 359152, 969429, 338314 for counters 1–4)
Giá trị kiểm thử trong Phụ lục D của RFC 4226.
Khi nào nên dùng Tạo mã HOTP
Dùng để kiểm thử triển khai HOTP, đồng bộ lại bộ đếm của token hoặc tìm hiểu cách mật khẩu dùng một lần được tạo ra. Với mã theo thời gian mà hầu hết ứng dụng dùng, hãy dùng công cụ tạo mã TOTP.
Tạo mã HOTP hoạt động như thế nào
HOTP(K, C) = Truncate(HMAC(K, C)) mod 10^số chữ số, trong đó C là bộ đếm 8 byte big-endian. Phép cắt động lấy 4 byte bắt đầu từ offset do 4 bit thấp của byte HMAC cuối cùng quy định và xóa bit cao nhất. HMAC được tính bằng Web Crypto API; mọi giá trị trong Phụ lục D của RFC 4226 đều được tái tạo.
Các Trường Hợp Sử Dụng Phổ Biến
- Kiểm thử một triển khai đăng nhập HOTP
- Tìm bộ đếm của token phần cứng bị lệch đồng bộ
- Tái tạo giá trị kiểm thử của RFC 4226
- Giảng dạy bước cắt động (dynamic truncation)
Câu Hỏi Thường Gặp
HOTP và TOTP khác nhau thế nào?
HOTP dùng bộ đếm sự kiện tăng lên sau mỗi mã; TOTP dùng thời gian hiện tại chia cho chu kỳ làm bộ đếm.
Điều gì xảy ra nếu bộ đếm bị lệch đồng bộ?
Máy chủ thường chấp nhận một khoảng nhìn trước vài giá trị bộ đếm rồi đồng bộ lại theo giá trị khớp.
Khóa bí mật cần ở định dạng nào?
Base32 (RFC 4648), cùng định dạng mà URI otpauth:// và màn hình thiết lập ứng dụng xác thực sử dụng.