欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

經常會用到GoogleAuth作為二次驗證碼,就扒了代碼看看這塊邏輯如何實現(xiàn)的,做個筆記。

import hmac
import struct
import time
from hashlib import sha1
from urllib.parse import urlencode, quote
if __name__ == '__main__':
    # account會作為標識顯示在身份驗證器上
    account = input("please enter your account: ")
    # secret用于生成秘鑰
    secret = input("please enter your secret: ")
    # label會作為標識顯示在身份驗證器上
    label = input("please enter your label: ")
    # 將secret轉換成bytes
    s = secret.encode()
    # 獲取時間片(1990年1月1日0時開始計時,30秒為一個單位)
    c = struct.pack(">Q", int(time.time()) // 30)
    # 根據secret和時間片指定sha1算法計算hash值,返回bytes類型hash值
    hmac_hash = hmac.new(s, c, sha1).digest()
    print("hmac_hash:", len(hmac_hash))
    # 取出hmac_hash的第19位和0xf做”與“運算
    offset = hmac_hash[19] & 0xf
    print("offset:", offset)
    # 從hmac_hash中取出4個16進制字節(jié)轉換為正整數(I)并取索引為[0],再與16進制0x7fffffff做與運算,最后除以10的六次方
    google_code = (struct.unpack(">I", hmac_hash[offset: offset + 4])[0] & 0x7fffffff) % 10 ** 6
    print(google_code)
    # 若計算后結果不足6位, 則在左側補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}'
    # 調用草料二維碼生成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)))

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

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

相關文章

  • Pandas0.25來了千萬別錯過這10大好用的新功能

    Pandas0.25來了千萬別錯過這10大好用的新功能

    這篇文章主要介紹了Pandas0.25來了千萬別錯過這10大好用的新功能,都有哪些新功能,文中給大家詳細介紹,需要的朋友可以參考下
    2019-08-08
  • 對Python Class之間函數的調用關系詳解

    對Python Class之間函數的調用關系詳解

    今天小編就為大家分享一篇對Python Class之間函數的調用關系詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 使用Ray集群簡單創(chuàng)建Python分布式應用程序

    使用Ray集群簡單創(chuàng)建Python分布式應用程序

    面對計算密集型的任務,除了多進程,就是分布式計算,如何用 Python 實現(xiàn)分布式計算呢?今天分享一個很簡單的方法,那就是借助于 Ray
    2021-09-09
  • python字符串排序方法

    python字符串排序方法

    這篇文章主要介紹了python字符串排序方法,基于lambda實現(xiàn),是非常實用的技巧,需要的朋友可以參考下
    2014-08-08
  • python查找指定文件夾下所有文件并按修改時間倒序排列的方法

    python查找指定文件夾下所有文件并按修改時間倒序排列的方法

    今天小編就為大家分享一篇python查找指定文件夾下所有文件并按修改時間倒序排列的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • python-docx如何刪除所有bookmarks

    python-docx如何刪除所有bookmarks

    在Python-docx庫中,雖然沒有直接刪除書簽的功能,但可以通過操作XML元素,遍歷文檔結構并刪除指定元素來實現(xiàn)刪除所有書簽的目的,首先要明白書簽在XML文件中的位置,然后利用Python-docx提供的element元素遍歷并刪除特定的書簽元素
    2024-09-09
  • PyQt5結合matplotlib繪圖的實現(xiàn)示例

    PyQt5結合matplotlib繪圖的實現(xiàn)示例

    這篇文章主要介紹了PyQt5結合matplotlib繪圖的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • Selenium 安裝和簡單使用的實現(xiàn)

    Selenium 安裝和簡單使用的實現(xiàn)

    這篇文章主要介紹了Selenium 安裝和簡單使用的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • python自定義解析簡單xml格式文件的方法

    python自定義解析簡單xml格式文件的方法

    這篇文章主要介紹了python自定義解析簡單xml格式文件的方法,涉及Python解析XML文件的相關技巧,非常具有實用價值,需要的朋友可以參考下
    2015-05-05
  • 完美處理python與anaconda環(huán)境變量的沖突問題

    完美處理python與anaconda環(huán)境變量的沖突問題

    這篇文章主要介紹了完美處理Python與anaconda環(huán)境變量的沖突問題,對anaconda感興趣的同學,可以參考下
    2021-04-04

最新評論