Как скрыть ввод без getpass (он не работает)?
Я пытался сделать простую программу регистрации / входа и хотел скрыть пароль, поэтому я вышел в Интернет.
Я попробовал эту штуку под названием getpass, но она не сработала. Он только что сказал мне, что не может изменить эхо в оболочке IDLE (я использую IDLE Python 3.6 в Windows 10, кстати)
Поэтому мне было интересно, есть ли способ скрыть ввод без getpass или зашифровать его каким-либо другим способом?
Вот код:
class Account:
def __init__(self, un, pw):
self.un = un
self.pw = pw
accounts = []
#account signing up
def signup():
usernm = input("Make a username >>> ")
passwd = input("Make a password >>> ")
accounts.append(Account(usernm, passwd))
def signin():
inun = input("Username? >>> ")
inpw = input("Password >>> ")
for account in accounts:
if account.un == inun:
if account.pw == inpw:
print("Signed in!")
option = input("Sign [i]n or sign [u]p? >>> ").lower()
if option == "i":
signin()
if option == "u":
signup()
Спасибо:)
1 ответ
У меня это полностью работает, поэтому я предполагаю, что вы не использовали правильный синтаксис
import getpass
p = getpass.getpass(prompt='Enter Your password: ')
Но если вы говорите, что это не сработало, потому что вы не видите никаких изменений в курсоре, то вы ошибаетесь.
IDLE или консоль Python, предназначенные для разработки предложений, а не для использования в программах, созданных для пользователей. Поэтому я бы порекомендовал вам использовать какой-то графический интерфейс, такой как Tkinter, чтобы выполнить ваше предложение.
Но если вы хотите, чтобы курсор двигался, ниже есть 2 решения:
- Для Python IDLE используйте эту ссылку.
- Для Tkinter вы можете использовать
виджет, попробуй , это будет отображать "*" для каждого введенного вами ключа.