两因素系统的python誓言实现。

pyoath的Python项目详细描述


pyoat

Build StatusCoverage Status

Two-Factor Authentication

python誓言实现。

誓言是Initiative for Open Authentication-不要与之混淆 oauth,对authorization的开放标准,这是完全不同的 范式。

pyoat实现了在RFC 4226中定义的hotp算法,发布于 2005年12月,以及RFC 6238中定义的totp算法,发表于 2011年5月。它是为 双因素认证系统。

要求

  • python=2.7、3.4、3.5、3.6

安装

对于用户

pip install pyoath

用于开发人员

git clone git@github.com:markgollnick/pyoath.git
cd pyoath
python setup.py build install
# Alternatively...
python setup.py sdist
pip install dist/pyoath-*.tar.gz

使用量

安装后,您可以将其用作脚本(即在客户端)…..

$ pyoath -h
usage: pyoath.py [-h] [--google] [--loop] secret

positional arguments:
  secret      shared secret [file] between client and server

optional arguments:
  -h, --help  show this help message and exit
  --google    Google Authenticator mode (assumes secret is encoded in base32)
  --loop      start an authenticator instance that will continue until killed

…或者,您可以将其用作库(即,在服务器端):

>>> import pyoath
>>> pyoath.HOTP(b'secret', 0)
'814628'
>>> pyoath.HOTP(b'secret', 1, Digit=8)
'28533881'
>>> pyoath.TOTP(b'secret')
'123456'
>>> pyoath.TOTP(b'secret', Digit=8)
'12345678'
>>> import hashlib
>>> pyoath.TOTP(b'secret', Digit=8, Mode=hashlib.sha512)
'87654321'

额外费用

因为大多数服务都会向用户提供两种形式的密钥 对于可扫描的QR Codes,您可能对以下实用程序感兴趣:

致谢

免责声明

这是一个概念的证明。

*不建议*存储双因素身份验证 硬盘上的秘密密钥,因为这明显地重现了 二元身份验证提供的安全性。两个因素的整体观点 身份验证是潜在攻击者必须跳转到twoseparate 箍圈:

  1. (s)他必须破解(或通过黑客、社会工程等收集)你的 系统或服务的密码或密码短语。
  2. (s)他必须能接触到装有你的双因素密钥的设备, 通常是你的手机,或者是你应该带的钥匙 一直都是你的人。

因为你用来登录其他系统的计算机 在线服务有自己的密码缓存和/或存储形式,存储 机器上某个地方的第二把密匙消除了这种装置的想法 分离,让潜在的攻击者更容易获得 获取不应该访问的内容。

如许可证中所述:

软件按“原样”提供,不提供任何形式的保证,无论是express还是
隐含的,包括但不限于适销性保证,
适合某一特定目的、头衔和行为的适合性。无论如何
版权所有者或任何分发软件的人应承担责任
对于任何损害或其他责任,无论是在合同、侵权行为或其他方面,
由软件、使用或其他原因引起、产生或与之相关
软件交易。

换言之,明智地或不明智地使用此软件,风险自负。

既然这已经不碍事了……不管你选择怎样做,你应该 仍然

Two

Factor

Everything

许可证

Boost软件许可证,1.0版:<;http://www.boost.org/LICENSE_1_0.txt>;

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java DB2查看最近执行的命令   java正则表达式如何只匹配数字后的字符,而不在匹配模式中包含数字   java是否可以使用Jmh运行基于时间的预热阶段?   java必须输入两次输入,扫描仪才能读取   java如何使用一个或多个类方法设置多个类字段,而这些类方法并不专门引用任何字段?   java Quartz的CronTrigger每24小时一次,如午夜   java字符串索引超出边界异常?   java FXMLLoader找不到fxml文件Maven项目   java Eclipse Indigo在安装m2ewtp插件时遇到问题   java如何为连接池配置Hibernate、Spring和ApacheDBCP?   java netbeans:类中的类路径。福奈姆   javajmx及其在Tomcat内部Docker上的调试   java HTTP状态404 tomcat 7   Java:String split():我希望它在末尾包含空字符串   java我应该使用枚举集吗?   Java StringTokenizer如何查找段落结尾?