生成和验证hotp和totp令牌的模块
onetimepass的Python项目详细描述
版本
当前开发版本:onetimepass-master.tar.gz
变更日志
Version | Date | Changes |
---|---|---|
1.0.1 | 2015-07-31 |
|
1.0.0 | 2015-07-31 |
|
0.3.0 | 2014-08-16 |
|
0.2.2 | 2013-07-12 |
|
0.2.1 | 2013-07-12 |
|
0.2.0 | 2013-04-11 |
|
0.1.2 | 2013-01-23 |
|
0.1.1 | 2013-12-20 |
|
0.1.0 | 2011-12-19 | (initial public release) |
什么是一次性通过
onetimepass(实际上是onetimepass)是用于生成一次性的模块 密码,即hotps(基于hmac的一次性密码)和totps(基于时间的密码 一次性密码)。它们在google authenticator应用程序中使用。 适用于Android或iPhone。
如何安装
要安装库,可以使用pip,也可以下载它 另外。在pip中安装最简单。假设您正在安装 整个IT系统:
$ sudo pip install onetimepass
(如果在virtualenv中安装,则不需要“sudo”部分)。
或者,您可以按照上面的下载链接,在一些 目录,或者将其作为git子模块克隆到自己的目录 目录。
如何使用一次通过
您可以按以下方式使用此模块:
安装模块(将其下载到应用程序的目录或模块中 目录)
要获取基于时间的令牌,可以这样调用它:
import onetimepass as otp my_secret = 'MFRGGZDFMZTWQ2LK' my_token = otp.get_totp(my_secret)
注意
my_secret不区分大小写,也忽略空格。这意味着你 可以为用户提供更具可读性的机密表示 (例如mfrg gzdf mztw q2lk而不是MFRGGZDFMZTWQ2LK)并传递它们 未更改为库。同样适用于其他接受 这个图书馆。
要获得基于hmac的令牌,可以这样调用它:
import onetimepass as otp my_secret = 'MFRGGZDFMZTWQ2LK' my_token = otp.get_hotp(my_secret, intervals_no=3)
其中intervals_no是当前试用的编号(如果选中 服务器,您必须检查几个值,高于上一个值 成功,为以前成功的身份验证确定)。
要检查基于时间的令牌,可以这样调用它:
import onetimepass as otp my_secret = 'MFRGGZDFMZTWQ2LK' my_token = 123456 # should be probably from some user's input is_valid = otp.valid_totp(token=my_token, secret=my_secret)
要检查基于hmac的令牌,可以这样调用它:
import onetimepass as otp my_secret = 'MFRGGZDFMZTWQ2LK' my_token = 123456 # should be probably from some user's input last_used = 5 # store last valid interval somewhere else is_valid = otp.valid_hotp(token=my_token, secret=my_secret, last=last_used)
其中:
- last参数(在本例中是赋值的last_used)是 上次成功检查的间隔数(作为 valid_totp()将跳过它并从下一个间隔开始检查 数字)
- is_valid被赋值为False,如果my_token没有 已识别为给定机密(my_secret)的有效OTP并已检查 间隔范围。如果成功,is_valid被分配一个 工作间隔编号(应保存到 数据库,并在下次 正在检查密码,因此不能再次使用同一令牌)。
许可证
此库的许可证位于LICENSE.rst文件中 目录。提供联机版本here。