Не удалось определить функции verifypassword, setnewpassword в классе passwordmanage
НАЗНАЧЕНИЕ:
Вы не должны использовать полнофункциональный фреймворк, просто простой код
Никакой базы данных, взаимодействия с пользователем или другой функциональности не требуется (поэтому нет HTML/CSS/JavaScript); это просто должен быть код, который запускается и проходит тесты
----------------------------------------------------------------------------------
менеджер паролей.
Разработайте программу, которая будет управлять паролями, отвечающими требованиям
пароль для системы.
класс PasswordManager
Класс PasswordManager должен иметь только 2 переменные-члена, которые будут хранить имя пользователя и имя пользователя.
зашифрованный пароль (строка).
Класс PasswordManager должен иметь следующие две защищенные функции
encrypt(string) : принимает пароль (string) и возвращает зашифрованную форму пароля
verifyPassword(string): принимает строку (пароль) и возвращает true, если после шифрования она соответствует
зашифрованная строка, хранящаяся в переменной-члене. Else возвращает false.
Класс PasswordManager должен иметь следующие две открытые функции
validatePassword(string): это принимает строку (пароль) и возвращает true, если она соответствует следующим требованиям
критерий
- Пароль не должен содержать пробелов
- Пароль должен быть длиной не менее 6 символов.
- Пароль должен содержать хотя бы одну заглавную и хотя бы одну строчную букву.
- Пароль должен содержать хотя бы одну цифру и символ.
Если пароль не соответствует этим требованиям,программа должна вывести сообщение с сообщением о том, что пароль не соответствует этим требованиям.
пользователь,почему пароль недействителен, в частности.Он также должен продолжать цикл до тех пор, пока пользователь не введет savalid
пароль.
setNewPassword: принимает строку (предлагаемый пароль). Если он соответствует критериям в validatePassword, то он
шифрует пароль, сохраняет его в переменной-члене и возвращает значение true. В противном случае возвращает false.
Место хранения
Используйте файл “password.txt-чтобы сохранить имя пользователя и зашифрованный пароль. Если он не существует, создайте его при первом запуске.
ввод-вывод
Основная функция должна создавать и использовать один экземпляр класса PasswordManagerclass.
Ваша программа будет использовать следующее меню, чтобы предложить пользователю протестировать реализацию:
A. Новый Пользователь
B. Проверка Пароля
C. Вход В Систему
D. Изменение Пароля
Что я уже пробовал:
from passlib.context import CryptContext from bcrypt import hashpw, gensalt import re class PasswordManager: plaintext_password = input("Enter your password: ") hashed = hashpw(plaintext_password.encode(), gensalt()) print(hashed) pwd_context = CryptContext( schemes=["pbkdf2_sha256"], default="pbkdf2_sha256", pbkdf2_sha256__default_rounds=30000) def encrypt_password(self): encrypt_pwd =self.pwd_context.encrypt(self.plaintext_password) #print(encrypt_pwd) return encrypt_pwd def verifyPassword(self,password,hashed): return self.pwd_context.verify(password,hashed) def validatePassword(password): while True: if len(password)<7: print("The password must be at least 6 characters long") break elif re.search(r'[\s]',password): print("The password must not contain any whitespace") break elif not re.search("[a-z]", password): print("The password must contain at least one lowercase") break elif not re.search("[A-Z]", password): print("The password must contain at least one uppercase") break elif not re.search("[0-9]", password): print("The password must have at least one digit") break elif not re.search("[@#$%]", password): print("The password must have at least one symbol in @#$%") break else: return True def setNewPassword(proposed_password): if validatePassword(proposed_password): pass hong = PasswordManager() #hong.encrypt_password() #hong.verifyPassword('hong')
Richard MacCutchan
В чем же проблема?