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 查看哈希值)