获取隐藏的密码输入
你知道在Linux系统中,当你尝试使用一些需要管理员权限的命令时,它会让你输入密码,而在你输入的时候,终端窗口里不会显示任何内容(密码是看不见的)吗?
我想知道在Python中有没有办法做到这一点?我正在写一个脚本,需要输入一些敏感信息,希望在输入的时候这些信息是隐藏的。
换句话说,我想从用户那里获取密码,但不想让密码显示出来。
7 个回答
21
这段代码会把每个字母都替换成一个星号。
import sys
import msvcrt
passwor = ''
while True:
x = msvcrt.getch()
if x == '\r':
break
sys.stdout.write('*')
passwor +=x
print '\n'+passwor
206
import getpass
pswd = getpass.getpass('Password:')
getpass 这个功能可以在Linux、Windows和Mac上使用。
557
使用 getpass.getpass()
方法:
from getpass import getpass
password = getpass()
你可以传入一个可选的提示信息,默认的提示是 "Password: "
。
需要注意的是,这个功能需要在合适的终端中使用,这样它才能关闭你输入字符时的回显功能。如果你在 IDLE 中运行,可能会遇到 “GetPassWarning: 无法控制终端的回显” 的警告,想了解更多可以查看这个链接。