One-Time-Password

在同一時間步內生成時,TOTP 間歇性地不返回相同的程式碼

  • May 29, 2018

所以我們需要使用 TOTP 在伺服器上生成程式碼以發送到移動客戶端,我一直在使用以下 3 個 java repos 測試程式碼生成:

我採用了核心 TOTP 生成程式碼,並且一直在測試它們。我的問題是我將執行任意 mvn 單元測試,其中使用 30 秒的預設時間步長,我將生成一個令牌(t0),等待 2 秒,然後生成另一個令牌(t1),有時(比如每 10 個中的 1 個)嘗試)t0 != t1。我不知道為什麼會這樣,而且我的數學還沒有達到完全掌握這是預期的還是我做錯了什麼的水平。

請注意,這發生在我上面提到的所有 3 個程式碼源(除了提供密鑰之外,我沒有更改程式碼) - 顯然我做錯了什麼或者這種行為可能是預期的?!

如果時間步長為 30 秒,則您的開始時間與兩秒後的結束時間不同的時間步長有 2/30 = 1/15 的機率。

引用自:https://crypto.stackexchange.com/questions/59580