Напишите программу, которая запрашивает у пользователя пароль и выдает пользователю хэш этого пароля. Затем программа проверяет, присутствует ли этот хэш в базе данных утекших паролей. Если да, то программа выводит пользователю количество вхождений и просит ввести новый пароль, если нет, то пишет, что пароль правильный и завершает работу.
Пример работы программы:
Пожалуйста, введите пароль для подтверждения: dsfsd
Хэш вашего пароля: 6BC86383D9369BA9E85855EAE96EBCC7C9551014
Пароль появляется 120 раз в базе данных утекших паролей.
Пароль не совпадает. Выберите новый пароль.
Пожалуйста, введите пароль для подтверждения: sdfsfsdfsdfsd
Хэш вашего пароля: 6CF12B7C7C922836062442987B3BDEE5F8A75E29
Пароль появляется 19 раз в базе данных утекших паролей.
Пароль не совпадает. Выберите новый пароль.
Пожалуйста, введите пароль для подтверждения: ps8dyfsdyhsdiufhsd
Хэш вашего пароля: F6B171F68FF8629211CAE22E2E1D808C43BA9822
Пароль появляется 0 раз в базе данных утекших паролей.
Пароль правильный.
Возможный алгоритм работы программы:
1. Попросите пользователя ввести пароль.
2. Преобразовать пароль в хэш алгоритмом sha-1, используя кодировку utf-8.
3. Вырезать из хеша первые 5 символов и сделать запрос к серверу.
4. Отправить запрос на сервер и получить ответ от сервера.
5. Сделайте необходимые преобразования с ответом, чтобы конечный результат был в виде информации, которую мы можем пройти в цикле.
6. Проверяем, есть ли наш хеш в списке полученных хэшей.
7. Если да, то мы выведем количество появлений и запросим новый пароль, если нет, то прекратим работу.
import hashlib
import requests
def salted_password():
password = input('Sisestage palun salasõna kontrollimiseks: ')
return hashlib.sha1(password.encode('utf-8')).hexdigest().upper()
hash_pwd = salted_password()
s_query = u'https://api.pwnedpasswords.com/range/{}'.format(hash_pwd[:5])
try:
pwd_list = requests.get(s_query)
# ваши действия с результатом запроса
except requests.exceptions.ConnectionError:
print('Нет соединения с сервером.')
Пример работы программы:
Пожалуйста, введите пароль для подтверждения: dsfsd
Хэш вашего пароля: 6BC86383D9369BA9E85855EAE96EBCC7C9551014
Пароль появляется 120 раз в базе данных утекших паролей.
Пароль не совпадает. Выберите новый пароль.
Пожалуйста, введите пароль для подтверждения: sdfsfsdfsdfsd
Хэш вашего пароля: 6CF12B7C7C922836062442987B3BDEE5F8A75E29
Пароль появляется 19 раз в базе данных утекших паролей.
Пароль не совпадает. Выберите новый пароль.
Пожалуйста, введите пароль для подтверждения: ps8dyfsdyhsdiufhsd
Хэш вашего пароля: F6B171F68FF8629211CAE22E2E1D808C43BA9822
Пароль появляется 0 раз в базе данных утекших паролей.
Пароль правильный.
Возможный алгоритм работы программы:
1. Попросите пользователя ввести пароль.
2. Преобразовать пароль в хэш алгоритмом sha-1, используя кодировку utf-8.
3. Вырезать из хеша первые 5 символов и сделать запрос к серверу.
4. Отправить запрос на сервер и получить ответ от сервера.
5. Сделайте необходимые преобразования с ответом, чтобы конечный результат был в виде информации, которую мы можем пройти в цикле.
6. Проверяем, есть ли наш хеш в списке полученных хэшей.
7. Если да, то мы выведем количество появлений и запросим новый пароль, если нет, то прекратим работу.
import hashlib
import requests
def salted_password():
password = input('Sisestage palun salasõna kontrollimiseks: ')
return hashlib.sha1(password.encode('utf-8')).hexdigest().upper()
hash_pwd = salted_password()
s_query = u'https://api.pwnedpasswords.com/range/{}'.format(hash_pwd[:5])
try:
pwd_list = requests.get(s_query)
# ваши действия с результатом запроса
except requests.exceptions.ConnectionError:
print('Нет соединения с сервером.')