有多种 Python 模块用于隐藏用户输入的密码,其中一个是**maskpass()模块。在 Python 中,借助maskpass()模块和base64()**模块,我们可以在输入时使用星号(*) 隐藏用户的密码,然后借助 base64() 模块可以对其进行加密。
maskpass()
maskpass() 是一个 Python 模块,可用于在输入期间隐藏用户的密码。maskpass() 模块还提供了一种安全的方式来处理程序通过终端与用户交互的密码提示。
安装:
在命令提示符下使用pip安装 maskpass。
pip install maskpass
这些模块有两种类型的功能/方法:
- askpass()
- advpass()
askpass():
askpass 使用标准库获取非阻塞输入并返回密码
import maskpass
pwd = maskpass.askpass()
上述代码执行将以字符串格式返回输入的密码。askpass() 方法中有 2 个可选参数,分别是“提示”和“掩码”。提示的默认值为“输入密码:”,掩码的默认值为星号 (*)。
注意:如果您想用字符串、数字或符号来掩盖您的密码,那么只需在掩码中传递该值。例如,如果你想用井号(#) 屏蔽你的密码,然后在掩码中传递井号,即 mask=”#”,现在当用户输入密码时,该密码将用井号(#) 隐藏。
示例 1:没有在提示中回显用户的密码
# 不回显的用户密码
import maskpass # 隐藏密码
# 屏蔽密码
pwd = maskpass.askpass(mask="")
print(pwd)
输出:
F:\files>python password.py
Enter Password :
haiyong
在上面的例子中,用户的密码在输入密码时没有在提示中回显,因为掩码中分配的值是空的,即掩码=””(无空格),因此密码被隐藏,没有任何字符串、符号。
示例 2:在提示中回显用户的密码
# 回显密码并用井号标签 (#) 屏蔽
import maskpass # importing maskpass library
# prompt msg = Password and
# 用井号(#)屏蔽密码
pwd = maskpass.askpass(prompt="Password:", mask="#")
print(pwd)
输出:
F:\files>python password.py
Password:###############
haiyong
在上面的例子中,用户的密码在输入密码时会在提示中回显,因为掩码中分配的值是hashtag(#)即 mask=”#” 因此当用户输入密码时,它会被隐藏井号(#)。
advpass():
advpass 使用 pynput 获取文本并返回密码。advpass 在控制台和 Spyder 中都可以使用。
import maskpass
pwd = maskpass.advpass()
上面的代码执行也会以字符串格式返回输入的密码。advpass() 方法中有 4 个可选参数,它们是 ‘prompt’、‘mask’