用于安全密码输入的 pinentry 的 pythonic 包装器
项目描述
PynEntry
pinentry的pythonic包装器
主要用于练习元编程
归功于mijikai的一个工作示例
需要安装 pinentry
方便方法:
- 快速简单地从用户那里获取密码/pin:
get_pin(description=None, prompt=None, timeout=0, display=None, global_grab=True)
- 显示并获得用户的确认:
get_confirm(description=None, timeout=0, display=None, global_grab=True)
- 向用户显示消息:
show_message(description=None, timeout=0, display=None, global_grab=True)
PynEntry 类
上述方法实例化并配置一个 PynEntry 实例,可以通过属性手动调用和配置
PynEntry 类支持以下属性:
description:设置要显示的描述性文本prompt:设置密码短语之前的文本(例如:“PASS:”)title:设置窗口标题ok_text:设置“确定”按钮中显示的文本cancel_text:设置“取消”按钮中显示的文本error_text:在重新提示之前设置文本以防出错(每次get_pin()调用后清除)tty_name:选择要使用的 tty(自动设置)tty_type:更改要使用的 tty 类型。locale:设置要使用的语言环境(自动设置为当前操作系统语言环境)
注意:PynEntry 类使用 $PATH 变量来查找 pinentry 可执行文件,您可以在初始化时手动指定可执行文件的位置,如下所示:PynEntry(executable='/path/to/pinentry')
PynEntry 最好用作上下文管理器,以便在您完成后自动终止 pinentry 进程。
例子:
import pynentry
pynentry.show_message('Hello there!')
with pynentry.PynEntry() as p:
p.description = 'Enter a password.\n Choose Wisely!'
p.prompt = 'PASS>'
try:
passwd = p.get_pin()
except pynentry.PinEntryCancelled:
print('Cancelled?! Goodbye.')
exit()
p.ok_text = 'yep!'
p.cancel_text = 'nope!'
p.description = f'CAN YOU CONFIRM YOUR SUPER SECRET PASSWORD IS {passwd}?'
if p.get_confirm():
print(f'password {passwd} saved!')
else:
print(f'Too bad, so sad')
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
pynentry-0.1.6.tar.gz
(5.0 kB
查看哈希)
内置分布
pynentry-0.1.6-py3-none-any.whl
(5.3 kB
查看哈希)