Do client có thể bấm sinh OTP vài lần mà không đăng nhập, bộ đếm server bị lệch. Server dò một cửa sổ look-ahead: thử các counter từ current đến current + w.
Cho secret, current_counter, window w và otp, tìm counter nhỏ nhất trong [current, current+w] sinh ra đúng otp. In MATCH <counter>; nếu không có, in NO MATCH.
Input:
12345678901234567890
0
5
359152
Output:
MATCH 2
(HOTP counter=2 của secret chuẩn = 359152)
Dòng 1: secret. Dòng 2: current_counter. Dòng 3: window w. Dòng 4: otp (6 chữ số).
0 <= current_counter <= 2^40; 0 <= w <= 1000.
Một dòng: 'MATCH ' hoặc 'NO MATCH'.
Ví dụ:
Đầu vào:
12345678901234567890
0
5
359152
Đầu ra:
MATCH 2
Giải thích:
Đang tải editor...