用于安全密码输入的python包装器
pynentr的Python项目详细描述
品性
Pinnentry的Python包装
主要是为了练习元编程
归功于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)
p输入类
上面的方法实例和配置一个可以手动调用和配置的PyEntry实例 via属性
PynEntry类支持以下属性:
description
:设置要显示的描述性文本prompt
:设置密码短语项之前的文本(例如:“PASS:”)title
:设置窗口标题ok_text
:设置“确定”按钮中显示的文本cancel_text
:设置“取消”按钮中显示的文本error_text
:设置在重新编译之前发生错误时的文本(每次get_pin()
调用后清除)tty_name
:选择要使用的tty(自动设置)tty_type
:更改要使用的tty类型。在locale
:设置要使用的区域设置(自动设置为当前操作系统区域设置)
注意:pyentry类使用$PATH变量来查找pinentry可执行文件,可以指定
初始化时手动执行:PynEntry(executable='/path/to/pinentry')
PynEntry最好用作上下文管理器,以便在完成后自动终止pinentry进程。在
示例:
importpynentrypynentry.show_message('Hello there!')withpynentry.PynEntry()asp:p.description='Enter a password.\n Choose Wisely!'p.prompt='PASS>'try:passwd=p.get_pin()exceptpynentry.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}?'ifp.get_confirm():print(f'password {passwd} saved!')else:print(f'Too bad, so sad')
- 项目
标签: