📅  最后修改于: 2020-04-16 01:13:41             🧑  作者: Mango
getpass()提示用户输入密码而不显示出来。getpass模块提供了一种安全的方式来处理密码提示,其中程序通过终端与用户进行交互。
该模块提供两个功能:
getpass.getpass(prompt='Password: ', stream=None)
getpass()函数用于使用字符串提示来提示用户,并从用户那里读取输入作为密码。读入的默认值“ Password:”将作为字符串返回给调用方。
让我们通过一些示例来了解其实现。
示例1:呼叫者未提供提示
# 一个简单的Python程序演示getpass.getpass()读取密码
import getpass
try:
p = getpass.getpass()
except Exception as error:
print('ERROR', error)
else:
print('Password entered:', p)
在此,呼叫者未提供任何提示。因此,将其设置为默认提示“Password”。
输出:
$ Python3 getpass_example1.py
Password:
('Password entered:', 'aditi')
示例2:安全性问题
有些程序会询问安全性问题,而不是询问密码以提高安全性。在这里,提示可以更改为任何值。
#一个简单的Python程序来演示getpass.getpass()来读取安全性问题
import getpass
p = getpass.getpass(prompt='你最喜欢的花? ')
if p.lower() == 'rose':
print('Welcome..!!!')
else:
print('The answer entered by you is incorrect..!!!')
输出:
$ Python3 getpass_example2.py
你最喜欢的花?
Welcome..!!!
$ Python3 getpass_example2.py
你最喜欢的花?
The answer entered by you is incorrect..!!!
2, getuser()
getpass.getuser()
getuser()函数显示用户的登录名。此函数按顺序检查环境变量LOGNAME,USER,LNAME和USERNAME,并返回第一个非空字符串的值。
例子3:
# Python程序演示getpass.getuser()的工作
import getpass
user = getpass.getuser()
while True:
pwd = getpass.getpass("用户名 : %s" % user)
if pwd == 'abcd':
print "Welcome!!!"
break
else:
print "The password you entered is incorrect."
输出:
$ Python3 getpass_example3.py
用户名 : bot
Welcome!!!
$ Python3 getpass_example3.py
用户名 : bot
The password you entered is incorrect.