gpt4 book ai didi

python - 如何在 Python 控制台程序中使用 echo "*"读取密码?

转载 作者:太空狗 更新时间:2023-10-29 20:16:11 24 4
gpt4 key购买 nike

我正在Windows下用Python写一个控制台程序。
用户需要登录才能使用该程序,当他输入密码时,我希望他们回显为“*”,同时我可以得到用户输入的内容。
我在标准库中找到了一个名为 getpass 的模块,但是当你输入时它不会回显任何东西(类似 linux)。
谢谢。

最佳答案

getpass 模块是用 Python 编写的。您可以轻松修改它来执行此操作。事实上,这里是 getpass.win_getpass() 的修改版本,您可以将其粘贴到您的代码中:

import sys

def win_getpass(prompt='Password: ', stream=None):
"""Prompt for password with echo off, using Windows getch()."""
import msvcrt
for c in prompt:
msvcrt.putch(c)
pw = ""
while 1:
c = msvcrt.getch()
if c == '\r' or c == '\n':
break
if c == '\003':
raise KeyboardInterrupt
if c == '\b':
pw = pw[:-1]
msvcrt.putch('\b')
else:
pw = pw + c
msvcrt.putch("*")
msvcrt.putch('\r')
msvcrt.putch('\n')
return pw

但是,您可能需要重新考虑这一点。 Linux方式更好;对于想要破解密码的人来说,即使只是知道密码中的字符数也是一个重要提示。

关于python - 如何在 Python 控制台程序中使用 echo "*"读取密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7838564/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com