Đồng hồ client và server có thể lệch nhau. Server chấp nhận OTP nếu nó khớp với bất kỳ bước thời gian nào trong khoảng [c0 - w, c0 + w], với c0 = time // step.
Cho secret, time, step, window w, otp, in VALID nếu khớp trong cửa sổ, ngược lại INVALID. (Bỏ qua counter âm.)
Input:
12345678901234567890
59
30
1
287082
Output:
VALID
Dòng 1: secret. Dòng 2: time. Dòng 3: step. Dòng 4: window w. Dòng 5: otp.
0 <= time <= 2^40; 1 <= step <= 3600; 0 <= w <= 100.
Một dòng: VALID hoặc INVALID.
Ví dụ:
Đầu vào:
12345678901234567890
59
30
1
287082
Đầu ra:
VALID
Giải thích:
Đang tải editor...