исходное значение d54cc1fe76f5186380a0939d2fc1723c44e8a5f7
Результат: «ThaiLand»
но в словаре проход В списке есть слово "Таиланд"
и когда я пишу программу, его нет в В списке я пытаюсь сделать все возможное, преобразуя каждый символ в списке, и в результате он совпадает.
Вопрос в том, есть ли другой способ оптимизировать мой код?
Временная сложность здесь действительно огромна это мой код
Код: Выделить всё
import hashlib
from urllib.request import urlopen
from itertools import product
# gen all possible in list
def generate_case_variations(password):
variations = []
for case_variant in product(*[(char.lower(), char.upper()) for char in password]):
variations.append(''.join(case_variant))
return variations
sha1hash = input("Enter Hash Value: ")
#url
url = 'https://raw.githubusercontent.com/danielmiessler/SecLists/master/Passwords/Common-Credentials/10k-most-common.txt'
passlist = str(urlopen(url).read(), 'utf-8')
#loop check list
for password in passlist.split('\n'):
for variation in generate_case_variations(password):
hashguess = hashlib.sha1(bytes(variation, 'utf8')).hexdigest()
if hashguess == sha1hash:
print(f"[+] The password is: {variation}")
quit()
else:
print(f"[-] Password Guess '{variation}' doesn't match")
print("Password doesn't match in the list")
Подробнее здесь: https://stackoverflow.com/questions/792 ... -in-python
Мобильная версия