雙因素演算法存疑

2022-05-22 15:39:15 字數 828 閱讀 4962

可以參考阮一峰老師的這篇文章,這裡主要對阮老師提供的演算法存疑

tc = floor(unixtime(now) / 30)

你是看懂了,但你沒動手驗證過,這個演算法沒法保證在30s內是相同的

舉個例子:

1510279844

1510279845

這2個時間戳只差了1s,但兩者除以30四捨五入後並不相等,望修正

汗顏啊,紙上得來終覺淺,絕知此事要躬行,動手驗證後,發現果然演算法是錯的。

雙因素驗證一般情況下,是服務端已經生成好了口令,然後客戶端再生成乙個口令,並提交給服務端驗證。

因為人操作客戶端還需要一定的反應時間,那麼客戶端的時間是比服務端慢的。

ts為間隔時間,假設從0秒開始,那麼當服務端的時間接近ts秒時,會出現什麼問題呢?

服務端 tc = floor(now/ts) = 0

客戶端 tc = floor((now+ts-1)/ts)= 1 //假設在ts秒前一秒客戶端生成乙個tc

這裡出現了乙個大問題,當服務端的時間接近ts的整數倍時(實際上只要超過ts/2,客戶端等待ts/2後生成),就會出現兩邊的tc不相等。

如果有乙個函式y=f(x),當 x0<=x<=x0+ts,取值都相同,那麼就可以做到現在的時刻往後+ts 的計算了。

然而回想起函式的定義,乙個x和乙個y要一一對應,而這個顯然不符合函式的定義了,因為乙個x會出現多個y。

看來只能做到連續時間段的校驗了,另外看到有雙因素驗證有人提到視窗期,和我的解決思路類似,即多求乙個tc。

雙因素認證介紹

什麼是雙因素認證 一般的狀況下,使用者通常使用的網路登入辦法為 使用者名稱 密碼。在密碼為靜態的狀況下,將會產生某些問題,比如為了維護密碼安全性,必須嚴格規定密碼的長度 複雜性 例如 中英文數字夾雜,大小寫間隔,長度須超過8個字元以上 及定期更換的頻率。使用者為了方便記憶,常常習慣使用特殊的數字,例...

什麼是雙因素認證

一般的狀況下,使用者通常使用的網路登入辦法為 使用者名稱 密碼。在密碼為靜態的狀況下,將會產生某些問題,比如為了維護密碼安全性,必須嚴格規定密碼的長度 複雜性 例如 中英文數字夾雜,大小寫間隔,長度須超過8個字元以上 及定期更換的頻率。使用者為了方便記憶,常常習慣使用特殊的數字,例如家人的生日 自己...

雙因素方差分析 多因素方差分析

在前面我們講過簡單的單因素方差分析,這一篇我們講講雙因素方差分析以及多因素方差分析,雙因素方差分析是最簡單的多因素方差分析。單因素分析就是只考慮乙個因素會對要比較的均值產生影響,而多因素分析是有多個因素會對均值產生影響。需要注意的是乙個因素可能會有不同的水平值,即不同的取值。比如要判斷某一款藥對某種...