離線驗證碼生成器的原理是什麼?

時間 2021-05-29 23:27:08

1樓:

1. 原理

這是一種動態密碼,是一種增強型的安全身份認證解決方案,實際多用做兩步認證(Two Step Authentication)或者直接代替密碼認證使用。定義可以參照

OTP wikipedia.org 的頁面

簡單來說你可以理解成這是一種利用單向雜湊函式,對特定的資料進行雜湊計算,在結果中進行擷取和字元對映轉義之後得出特定的結果(比如你看到的那串數字,當然也可能是字母、或者字母數字組合,長度也完全可以定製,只要不超出雜湊結果容量就好)。

雜湊的特點就是,輸入不變,結果不變也就是 f(x) = hash(x) 肯定是乙個定值,在OTP中,一般會引入時間因子作為變數,上面的計算方式也就變成了 f(x, time) = hash(x, time) ,由於時間的改變結果也就不斷變化了。考慮到使用者在獲取動態密碼到輸入過程,需要耗費時間,一般來說OTP的計算時間會設計成某個時間區間,比如1分鐘,這樣的話,計算方程裡面的time單位也就是分鐘了。

2. 實現

一般這種身份認證解決方案會包含兩部分:

* 動態密碼認證伺服器( Authentication Server)

* 動態密碼認證器(OTP Authenticator),當然還有些說法叫令牌(Token)

在可以正常使用OTP認證之前,服務端和認證器需要協商一串金鑰,也就是上文提到的x,然後同步好兩方計算用的基準時間。

在完成了這些工作之後,動態密碼就可以直接在認證參與的雙方進行了。由於整個計算的過程是本地運算的,所以在實際使用的時候是可以脫離網路使用的(前提是我們提到的時間因素不能有偏差,當然這個因素,廠商也有很多適配的方案去解決),在使用者把自己賬號的OTP輸入提交給服務端之後,服務端比對一下運算的結果是否匹配,就可以簡單的完成認證過程了。

3. 擴充套件閱讀

基於時間的動態密碼標準:

Time-based One-time Password Algorithm

RFC 6238 - TOTP: Time-based One-time Password Algorithm

用漫畫生成器生成的個人故事漫畫這種方式是不是很low

禾爻 不low。對那些想要畫漫畫卻一竅不通的人來說簡直是雪中送炭。但這種生成器也是有缺陷 人物僵硬,素材稀少 所以最好是自己學 畫吧。 記憶球 謝個邀?個人認為沒有low的創作方式,只有low的作者和作品。漫畫最重要的是內容的表達。像這類降低門檻的工具可預見的只會越來越多,各行各業都是如此 比如修圖...

如何最簡單 通俗地理解Python的生成器?

Python開發大佬 要了解yield的作用,就要了解什麼是生成器。要了解生成器,首先要了解迭代器。I t e r a b l e 迭代器 在建立列表時,可以逐個讀取其專案。逐項讀取的專案稱為迭代 mylist是可迭代的物件,這就是迭代。使用 for in 的所有物件都是可迭代的物件,如 list ...

現在除了簡訊驗證碼之外,還有哪些可取的驗證方式?

燁琦 中國移動推出了乙個新的驗證方式,不需要使用者獲取驗證碼。只需要使用者輸入手機號碼,呼叫移動的介面,移動會返回輸入的號碼是否是本機號碼。這個方式減少了使用者獲取簡訊等待的時間,但是對企業來說,驗證的成本不容小覷,收費標準最低是3.5分 條 成功和失敗都計費 詳情見 http dev.10086....