跳转到主要内容

Python中的Blizzard Authenticator和OTP库

项目描述

python-bna

需求

  • Python 3.6+

命令行使用

bna是python-bna库的命令行界面。它可以存储和管理多个身份验证器,还可以创建新的身份验证器。

注意:在使用与登录设备相同的设备上的身份验证器时,安全性低于将设备分开。请在自己的风险下使用。

配置存储在~/.config/bna/bna.conf中。您可以通过bna --config=~/.bna.conf之类的命令传递不同的配置路径。

创建新的身份验证器

$ bna new

如果您还没有身份验证器,它将被设置为默认值。否则,您可以传递--set-default

获取身份验证令牌

$ bna
01234567
$ bna EU-1234-1234-1234
76543210

获取身份验证器的恢复码

$ bna show-restore-code
Z45Q9CVXRR
$ bna restore EU-1234-1234-1234 ABCDE98765
Restored EU-1234-1234-1234

获取OTPAuth URL

显示OTPAuth URL(用于设置QR码)

$ bna show-url
otpauth://totp/Blizzard:EU123412341234:?secret=ASFAS75ASDF75889G9AD7S69AS7697AS&issuer=Blizzard&digits=8

现在将此粘贴到您的OTP应用程序中,或将它转换为QR码扫描,或手动输入密钥。

此功能与标准TOTP客户端和密码管理器兼容,例如

获取QR码

要将本地系统编码为二维码,请安装 'qrencode'

对于保存在磁盘上的 PNG 文件

$ bna show-url | qrencode -o ~/BNA-qrcode.png
# Scan QRCode
$ rm ~/BNA-qrcode.png

或尝试在终端中作为文本输出显示 QRCode

$ bna --otpauth-url | qrencode -t ANSI

Python 库使用

请求新的验证器

import bna
try:
    # region is EU or US
    # note that EU authenticators are valid in the US, and vice versa
    serial, secret = bna.request_new_serial("US")
except bna.HTTPError as e:
    print("Could not connect:", e)

获取令牌

    # Get and print a token using PyOTP
    from pyotp import TOTP
    totp = TOTP(secret, digits=8)
    print(totp.now())

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

bna-5.1.0.tar.gz (9.8 kB 查看哈希值)

上传时间

构建分布

bna-5.1.0-py3-none-any.whl (10.1 kB 查看哈希值)

上传时间 Python 3

支持者