获取隐藏的密码输入

402 投票
7 回答
411952 浏览
提问于 2025-04-17 12:37

你知道在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: 无法控制终端的回显” 的警告,想了解更多可以查看这个链接。

撰写回答