TOTP: секунды считаются?
На устройстве: если TOTP генерируется сейчас, идет ли он до последних секунд или округляется до ближайшего 00?
Например, если я генерирую TOTP с 22 ч. 30 м. 2 с. 33 мс (проверено в UTC), округляется ли он до 22 ч. 30 м. 0 с: 00 мс, а затем генерируется?
У меня есть эти вопросы, потому что, если бы я должен был сгенерировать TOTP в 22: 30: 2: 33 мс, и если сервер должен был проверить его в 22: 30: 6: 40 мс, то не будет ли общий результат другим? Даже если мы используем 3 шага по 30 секунд каждый, разве мы не пропустим 22h:30m:2s:33ms stop?
Я думаю, что я здесь упускаю главное.
1 ответ
Вот как это округляется с использованием Javascript
var time = leftpad(dec2hex(Math.floor(epoch / 30)), 16, '0');
Таким образом, на то, что вы спрашиваете, ответили на эту часть "Math.floor(epoch / 30)", что означает, что OTP генерируется в 12:22:30, 12:22:37, 12:22:39 .... 12:22:59 точно такой же