Totpy - CLI TOTP 生成器和管理工具
项目描述
托皮
描述
Totpy 是适用于 Linux 和 MacOS 的 CLI TOTP 生成器和管理工具。可以从给定的密钥或存储在配置文件中的密钥生成 TOTP 令牌。可以使用密钥或密钥的二维码图像将秘密添加到配置文件中。默认配置文件存储在 中~/.local/config/totpy,但可以用给定的配置文件覆盖。
安装
Totpy 需要以下软件包:
- 点击 7.0 ( https://click.palletsprojects.com/en/7.x/ )
- 枕头 7.0.0 ( https://pillow.readthedocs.io/en/stable/ )
- pypng 0.0.20 ( https://pypng.readthedocs.io/en/latest/ )
- PyQRCode 1.2.1 ( https://pythonhosted.org/PyQRCode/ )
- pyzbar 0.1.8 ( https://github.com/NaturalHistoryMuseum/pyzbar/ )
- pyperclip 1.7.0 ([https://github.com/asweigart/pyperclip])
可以使用 pip 从此存储库安装 Totpy:
$ pip install git+https://github.com/jorgegarciadev/totpy.git
使用 pip 从 Python 包索引:
$ pip install totpy
或者克隆这个存储库并运行 setup.py:
$ git clone https://github.com/jorgegarciadev/totpy.git
$ python setup.py install --user
在所有情况下它都会安装模块和 CLI 工具。
用法
-c --conf PATH
从现在开始覆盖存储的配置~/.local/config/totpy/config.json并使用新文件。检查config.example更多信息。
$ totpy -c conf.json foo
-a --add NAME
在配置文件中添加一个新的秘密。可以使用 QR 码图像添加新密钥:
$ totpy -a foo -q foo.png
-s或使用以下选项直接传递秘密:
$ totpy -a foo -s JBSWY3DPEHPK3PXP
如果条目已经存在,它将被覆盖。
-r --remove NAME
从配置文件中删除给定的条目。
$ totpy -r foo
-qr NAME
为给定名称生成 QR 码并在终端中打印。
$ totpy -qr foo
-l --list
显示配置文件中所有条目的名称。
$ totpy -l
-s --secret
为给定的密钥生成 TOTP 令牌。
$ totpy -s JBSWY3DPEHPK3PXP
235467
--copy
将 TOTP 令牌复制到剪贴板。
$ totpy --copy -s JBSWY3DPEHPK3PXP
235467
$ totpy --copy granada
099299
NAME
使用存储在给定名称的配置文件中的秘密生成 TOTP 令牌。
$ totpy granada
099299
托皮模块
Totpy 包括三个类:
- Base:用于管理配置文件的帮助类。
- Totpy:定义
totpyCLI 工具行为的类。 - Totp:生成令牌的类。
顶级班
这可以在您的项目中导入并使用。这是源代码:
class Totp(object):
"""docstring for Totpy"""
def __init__(self, secret):
self.secret = secret
def getHotpToken(self, interval):
key = base64.b32decode(self.secret, True)
msg = struct.pack(">Q", int(time.time()) // interval)
h = hmac.new(key, msg, hashlib.sha1).digest()
o = h[19] & 15
h = (struct.unpack(">I", h[o:o+4])[0] & 0x7fffffff) % 1000000
return h
def getTotpToken(self):
return self.getHotpToken(interval=30)
执照
这是免费的开源软件。根据 MIT 许可证的条款,您可以使用、复制、修改、合并、发布、分发、再许可和/或出售其副本。有关详细信息,请参阅 LICENSE.txt。
本软件按“原样”提供,不提供任何形式的明示或暗示保证。有关详细信息,请参阅 LICENSE.txt。
支持
要报告错误、建议改进或提出问题,请在https://github.com/jorgegarciadev/totpy/issues创建一个新问题。