91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何實現雙因素驗證2FA

發布時間:2022-07-08 13:55:42 來源:億速云 閱讀:266 作者:iii 欄目:開發技術

這篇“Python如何實現雙因素驗證2FA”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Python如何實現雙因素驗證2FA”文章吧。

1.安裝

pip 安裝,不多說。

pip install pyotp

2.配對

配對就是移動設備和我們的 web 服務器配對。

首先,在服務器上使用如下代碼生成一次性密鑰:

>>> import pyotp
>>> pyotp.random_base32()
'BZ4TOJD4JWWJWPQBKP23FA55EMHA25Y2'
>>>

然后將這個密鑰以二維碼的形式讓手機(移動設備)掃描,掃描之后,手機上的應用就保存了這個密鑰。

3.驗證

接下來,在手機上就可以使用下面這段邏輯產生動態密碼了。

>>> totp = pyotp.TOTP('BZ4TOJD4JWWJWPQBKP23FA55EMHA25Y2')
>>> totp.now()
'941782'
>>>

現在,你有 30 秒的時間將這個 6 位數密碼提交到服務器(輸入到網頁上),服務器服務器也使用同樣的密鑰和當前時間戳,生成一個動態碼,跟用戶提交的動態碼比對。只要兩者不一致,就驗證失敗,也就是下面這段邏輯,如果超過 30 秒,(當然,30 秒可以自定義),也會失效:

>>> totp = pyotp.TOTP('BZ4TOJD4JWWJWPQBKP23FA55EMHA25Y2')
>>> totp.verify('941782')
True
>>> time.sleep(30)
>>> totp.verify('941782')
False

除了使用基于時間的動態密碼,也可以用基于計數的動態密碼,邏輯如下:

hotp = pyotp.HOTP('base32secret3232')
hotp.at(0) # => '260182'
hotp.at(1) # => '055283'
hotp.at(1401) # => '316439'

# OTP verified with a counter
hotp.verify('316439', 1401) # => True
hotp.verify('316439', 1402) # => False

4.那是不是手機上還有開發個 app

不用,我們直接使用現成的 Google Authenticator 就可以了。

如果你已安裝了 Google Authenticator,請點擊 :heavy_plus_sign: 添加密鑰,然后掃描下發的二維碼,就可以生成動態碼:

Python如何實現雙因素驗證2FA

然后你可以執行下面這段代碼,就可以發現 pyotp 產生的動態碼和 Google Authenticator 產生的是一致的:

import pyotp
totp = pyotp.TOTP("JBSWY3DPEHPK3PXP")
print("Current OTP:", totp.now())

其實二維碼的信息就是 JBSWY3DPEHPK3PXP。

這樣,我們用 Google Authenticator 來產生動態密碼,網站上進行二次驗證,就可以實現 2FA 了。

以上就是關于“Python如何實現雙因素驗證2FA”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

丹棱县| 佳木斯市| 南陵县| 肥西县| 肃南| 永康市| 讷河市| 武定县| 通许县| 太保市| 邳州市| 仁布县| 阿勒泰市| 舒城县| 故城县| 定边县| 临泽县| 府谷县| 崇阳县| 巴南区| 南部县| 柳江县| 宜春市| 东港市| 洛川县| 长阳| 罗甸县| 南部县| 台州市| 黄龙县| 萍乡市| 伊宁县| 孝感市| 丰台区| 高州市| 饶河县| 教育| 桑植县| 哈密市| 清水县| 民权县|