当密码被输入时,我如何将其转换为星号?

11 浏览
0 Comments

当密码被输入时,我如何将其转换为星号?

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

例如,如果要求电子邮件用户登录其帐户时,输入密码时,密码不会显示为字符,而是在每次按键后立即显示为*,而没有任何时间间隔。

如果实际密码是KermitTheFrog,在键入时将显示为************

我不是在问如何禁用字符在屏幕上的回显,这是Python的getpass.getpass()模块所做的。我特别想要的是按键时出现星号的功能,而getpass不能做到。

0
0 Comments

问题的出现原因是用户希望在输入密码时将其转换为星号(*)来隐藏密码的实际内容。为了解决这个问题,用户可以安装一个名为pwinput的Python模块。该模块可以在Windows/macOS/Linux上使用,并且兼容Python 2和3版本。相比Python标准库中的getpass.getpass()方法,pwinput模块可以在用户输入密码时显示星号。此外,pwinput模块可以在各个操作系统上使用,而getpass方法只能在Linux和macOS上使用。

用户可以按照以下步骤使用pwinput模块:

1. 使用命令pip install pwinput安装pwinput模块。

2. 在代码中导入pwinput模块。

3. 调用pwinput.pwinput()方法以获取用户输入的密码。

4. 可选地,可以通过设置mask参数来改变密码输入时的掩码字符。例如,可以将掩码字符改为X,*或空字符。

5. 可选地,可以通过设置prompt参数来改变提示符。

6. 最后,用户可以通过返回值来获取用户输入的密码。

不幸的是,pwinput模块和Python的内置getpass模块都无法在IDLE或Jupyter Notebook中使用。

更多详细信息可以在https://pypi.org/project/pwinput/上找到。

关于"getpass is Linux and macOS only"这句话,我不确定你的意思。Python的文档将getpass描述为"Portable password input",意思是可移植的密码输入。虽然它可能无法在所有平台上可靠地禁用回显,但它应该始终可用,并在必要时回退到从stdin读取。

啊,你说得对。我刚才想的是另一个模块而不是getpassgetpass模块从未显示过星号。

0
0 Comments

问题:如何在输入密码时将其转换为星号?

原因:用户输入密码时,为了保护密码的安全性,希望能够以星号的形式显示,以防止密码被他人偷看。

解决方法:使用Python中的getpass模块中的getpass()函数,该函数可以隐藏用户输入的内容。

import getpass
password = getpass.getpass()
print(password)

然而,上述代码只是隐藏了密码,而没有以星号(*)的形式显示。

在Python 3.7及更高版本中,使用Jupyter lab的单元格时,输入密码时会以小黑点(或者说是非常小的星号)的形式显示。

0
0 Comments

问题的出现原因:用户想要将输入的密码显示为星号,以增加密码的安全性。

解决方法:在Tkinter中使用Entry组件,设置show属性为"*",以显示星号替代密码字符。在shell中,不可能直接将密码转换为星号显示,但可以编写一个函数,在调用时仅返回一个由星号组成的字符串,以实现相同的效果。可以参考这个链接中提供的示例代码来实现。以下是示例代码:

# For Python 2:
from Tkinter import Entry, Tk
# For Python 3
from tkinter import Entry, Tk
master = Tk()
Password = Entry(master, bd=5, width=20, show="*")
Password.pack()
master.mainloop()

通过上述代码,可以创建一个Tkinter窗口,并在窗口中添加一个Entry组件,设置show属性为"*",以将输入的密码显示为星号。

0