Я пытаюсь создать окно входа в систему, в котором пользователю предлагается ввести свое имя пользователя и пароль, хотя при вводе пароля я ищу звездочки для печати, например, общий ввод пароля (т.е. - Sekr3t отображается как: * * * * * *).
Вот код, который у меня есть до сих пор, и я не могу понять, почему он не отображает звездочки:
import msvcrt
import sys
def login(prompt = '> '):
write = sys.stdout.write
for x in prompt:
msvcrt.putch(x)
passw = ""
while 1:
x = msvcrt.getch()
if x == '\r' or x == '\n':
break
if x == '\b':
# position of my error
passw = passw[:-1]
else:
write('*')
passw = passw + x
msvcrt.putch('\r')
msvcrt.putch('\n')
return passw
Любая помощь будет оценена по достоинству.
getpass()
. Я понимаю, что вы уже нашли это, но отсутствие повторения чего-либо на самом деле улучшает безопасность. - person ThiefMaster   schedule 12.06.2012curses
- person Joel Cornett   schedule 12.06.2012