最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python接入GoogleAuth的實(shí)現(xiàn)

 更新時(shí)間:2023年08月07日 09:15:47   作者:SeasonRun  
經(jīng)常會(huì)用到GoogleAuth作為二次驗(yàn)證碼,本文主要介紹了python接入GoogleAuth的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

經(jīng)常會(huì)用到GoogleAuth作為二次驗(yàn)證碼,就扒了代碼看看這塊邏輯如何實(shí)現(xiàn)的,做個(gè)筆記。

import hmac
import struct
import time
from hashlib import sha1
from urllib.parse import urlencode, quote
if __name__ == '__main__':
    # account會(huì)作為標(biāo)識(shí)顯示在身份驗(yàn)證器上
    account = input("please enter your account: ")
    # secret用于生成秘鑰
    secret = input("please enter your secret: ")
    # label會(huì)作為標(biāo)識(shí)顯示在身份驗(yàn)證器上
    label = input("please enter your label: ")
    # 將secret轉(zhuǎn)換成bytes
    s = secret.encode()
    # 獲取時(shí)間片(1990年1月1日0時(shí)開始計(jì)時(shí),30秒為一個(gè)單位)
    c = struct.pack(">Q", int(time.time()) // 30)
    # 根據(jù)secret和時(shí)間片指定sha1算法計(jì)算hash值,返回bytes類型hash值
    hmac_hash = hmac.new(s, c, sha1).digest()
    print("hmac_hash:", len(hmac_hash))
    # 取出hmac_hash的第19位和0xf做”與“運(yùn)算
    offset = hmac_hash[19] & 0xf
    print("offset:", offset)
    # 從hmac_hash中取出4個(gè)16進(jìn)制字節(jié)轉(zhuǎn)換為正整數(shù)(I)并取索引為[0],再與16進(jìn)制0x7fffffff做與運(yùn)算,最后除以10的六次方
    google_code = (struct.unpack(">I", hmac_hash[offset: offset + 4])[0] & 0x7fffffff) % 10 ** 6
    print(google_code)
    # 若計(jì)算后結(jié)果不足6位, 則在左側(cè)補(bǔ)0
    google_code = f'{google_code:>06}'
    print(google_code)
    prefix = label
    prefix += f':{account}'
    ends = {
        'secret': secret,
        'label': label
    }
    base_uri = 'otpauth://totp/{prefix}?{ends}'
    # 調(diào)用草料二維碼生成api
    caoliao_qrcode_url = 'https://api.pwmqr.com/qrcode/create/?url={qr_content}'
    qr_uri = base_uri.format(prefix=prefix, ends=urlencode(ends))
    print(caoliao_qrcode_url.format(qr_content=quote(qr_uri)))

 使用谷歌身份驗(yàn)證器掃描鏈接生成的二維碼即可綁定。

到此這篇關(guān)于python接入GoogleAuth的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python接入GoogleAuth內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中關(guān)于os.path.pardir的一些坑

    python中關(guān)于os.path.pardir的一些坑

    這篇文章主要介紹了python中關(guān)于os.path.pardir的一些坑及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • python多核處理器算力浪費(fèi)問題解決

    python多核處理器算力浪費(fèi)問題解決

    這篇文章主要為大家介紹了python多核處理器算力浪費(fèi)現(xiàn)象的處理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Flask中特殊裝飾器的使用

    Flask中特殊裝飾器的使用

    本文主要介紹了Flask中特殊裝飾器的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • python報(bào)錯(cuò)TypeError: Input z must be 2D, not 3D的解決方法

    python報(bào)錯(cuò)TypeError: Input z must be 

    大家好,本篇文章主要講的是python報(bào)錯(cuò)TypeError: Input z must be 2D, not 3D的解決方法,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2021-12-12
  • python入門基礎(chǔ)之用戶輸入與模塊初認(rèn)識(shí)

    python入門基礎(chǔ)之用戶輸入與模塊初認(rèn)識(shí)

    Python的強(qiáng)大之處在于他有非常豐富和強(qiáng)大的標(biāo)準(zhǔn)庫和第三方庫,幾乎你想實(shí)現(xiàn)的任何功能都有相應(yīng)的Python庫支持。下面通過本文給大家介紹python入門基礎(chǔ)之用戶輸入與模塊初認(rèn)識(shí),一起看看吧
    2016-11-11
  • Python循環(huán)緩沖區(qū)的應(yīng)用詳解

    Python循環(huán)緩沖區(qū)的應(yīng)用詳解

    循環(huán)緩沖區(qū)是一個(gè)線性緩沖區(qū),邏輯上被視為一個(gè)循環(huán)的結(jié)構(gòu),本文主要為大家介紹了Python中循環(huán)緩沖區(qū)的相關(guān)應(yīng)用,有興趣的小伙伴可以了解一下
    2025-03-03
  • Django 前后臺(tái)的數(shù)據(jù)傳遞的方法

    Django 前后臺(tái)的數(shù)據(jù)傳遞的方法

    本篇文章主要介紹了Django 前后臺(tái)的數(shù)據(jù)傳遞的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • 使用Selenium控制當(dāng)前已經(jīng)打開的chrome瀏覽器窗口

    使用Selenium控制當(dāng)前已經(jīng)打開的chrome瀏覽器窗口

    有時(shí)通過selenium打開網(wǎng)站時(shí),發(fā)現(xiàn)有些網(wǎng)站需要掃碼登錄,就很頭疼,導(dǎo)致爬蟲進(jìn)展不下去,下面這篇文章主要給大家介紹了關(guān)于使用Selenium控制當(dāng)前已經(jīng)打開的chrome瀏覽器窗口的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • 給Python學(xué)習(xí)者的文件讀寫指南(含基礎(chǔ)與進(jìn)階)

    給Python學(xué)習(xí)者的文件讀寫指南(含基礎(chǔ)與進(jìn)階)

    今天,貓貓跟大家一起,好好學(xué)習(xí)Python文件讀寫的內(nèi)容,這部分內(nèi)容特別常用,掌握后對工作和實(shí)戰(zhàn)都大有益處,學(xué)習(xí)是循序漸進(jìn)的過程,欲速則不達(dá)
    2020-01-01
  • Python報(bào)錯(cuò)KeyError: ‘missing_key‘的有效解決方法

    Python報(bào)錯(cuò)KeyError: ‘missing_key‘的有效解決方法

    在 Python 編程中,報(bào)錯(cuò)信息常常讓開發(fā)者感到困擾,其中,“KeyError: ‘missing_key’”是一個(gè)較為常見的報(bào)錯(cuò),它可能在各種數(shù)據(jù)處理和字典操作的場景中出現(xiàn),本文將深入探討這個(gè)報(bào)錯(cuò)的原因,并提供多種有效的解決方法,幫助開發(fā)者快速解決此類問題
    2024-10-10

最新評(píng)論

绿春县| 九台市| 成武县| 达孜县| 韶山市| 玛曲县| 仙居县| 太湖县| 平原县| 沙洋县| 潮州市| 济源市| 宜都市| 樟树市| 乌拉特后旗| 文成县| 读书| 土默特右旗| 民勤县| 五常市| 黑山县| 报价| 柞水县| 中阳县| 大渡口区| 安康市| 永寿县| 高雄市| 江川县| 项城市| 娱乐| 溧水县| 孝义市| 五常市| 金川县| 龙口市| 昌平区| 安溪县| 南岸区| 青阳县| 巴林右旗|