HOTP (HMAC-based One-Time Password, RFC 4226) là thuật toán sinh mã xác thực 6 chữ số dùng trong xác thực hai yếu tố (2FA), dựa trên một khóa bí mật K và một bộ đếm C.
Thuật toán tính mã OTP như sau:
Khóa K là chuỗi bytes UTF-8 của chuỗi bí mật cho trước (không cần giải mã Base32).
Ví dụ: với K= 12345678901234567890 và C=0, mã OTP sinh ra là 755224.
Hai dòng: dòng 1 là chuỗi bí mật K (chuỗi ASCII, có thể rỗng); dòng 2 là số nguyên không âm C (0≤C<263).
In ra mã OTP gồm đúng 6 chữ số, có thêm số 0 ở đầu nếu cần (ví dụ 009154).
Ví dụ:
Đầu vào:
12345678901234567890
0
Đầu ra:
755224
Đầu vào:
12345678901234567890
1
Đầu ra:
287082
Đang tải editor...