如何在输入密码时将密码转换为星号?

Ler*_*yJD 13 python

有没有一种方法可以在用户输入星号时转换字符,就像在许多网站上看到的那样?

例如,如果要求电子邮件用户登录其帐户,则在输入密码时,它不会显示为字符,而是显示*在每个单独的笔划之后,没有任何时间延迟.

如果是实际密码KermitTheFrog,则会*************在输入时显示.

pp_*_*pp_ 21

getpass()一个隐藏用户输入的功能.

import getpass

password = getpass.getpass()
print(password)
Run Code Online (Sandbox Code Playgroud)

  • 这怎么可能是公认的答案,问题显然是关于展示明星而不是隐藏。现在,当您搜索“python 密码输入星号”时,Google 搜索会引导到这里。 (5认同)
  • 是的,但是您知道输入密码时可以显示(*)而不是什么的内容吗? (2认同)
  • 这完全隐藏了密码。它不显示星号 (*)。 (2认同)

Al *_*art 9

如果您想要一个适用于 Windows/macOS/Linux 和 Python 2 和 3 的解决方案,您可以安装该stdiomask模块:

pip install stdiomask
Run Code Online (Sandbox Code Playgroud)

getpass.getpass()(在 Python 标准库中)不同,该stdiomask模块可以在您键入时显示 *** 掩码字符。

用法示例:

>>> stdiomask.getpass()
Password: *********
'swordfish'
>>> stdiomask.getpass(mask='X') # Change the mask character.
Password: XXXXXXXXX
'swordfish'
>>> stdiomask.getpass(prompt='PW: ', mask='*') # Change the prompt.
PW: *********
'swordfish'
>>> stdiomask.getpass(mask='') # Don't display anything.
Password:
'swordfish'
Run Code Online (Sandbox Code Playgroud)

不幸的是,这个模块与 Python 的内置getpass模块一样,在 IDLE 或 Jupyter Notebook 中不起作用。

更多详情请访问https://pypi.org/project/stdiomask/


小智 8

如果你使用Tkinter :(这是Python 2.x.但是,3.x会非常相似)

from Tkinter import Entry, Tk

master = Tk()

Password = Entry(master, bd=5, width=20, show="*")
Password.pack()

master.mainloop()
Run Code Online (Sandbox Code Playgroud)

在shell中,这是不可能的.但是,您可以编写一个函数来存储输入的文本,并在调用时仅报告*的字符串. 有点像这样,我没有写.我只是用谷歌搜索它.