Я пытаюсь добавить многопроцессорную обработку в существующий взломщик паролей, источник которого находится здесь: https://github.com/axcheron/pyvboxdie-cracker
Сценарий работает отлично, но он очень медленный, добавляя многопроцессорность конечно ускорит это. Я посмотрел в Интернете (и здесь) несколько примеров, и я наткнулся на стену полной информационной перегрузки, я просто не могу разобраться с этим. Я нашел очень полезную запись от пользователя Camon (здесь: Python Мультипроцессорный взломщик паролей ), но я не вижу, как реализовать это в скрипте.
def crack_keystore(keystore, dict):
wordlist = open(dict, 'r')
hash = get_hash_algorithm(keystore)
count = 0
print("\n[*] Starting bruteforce...")
for line in wordlist.readlines():
kdf1 = PBKDF2HMAC(algorithm=hash, length=keystore['Key_Length'], salt=keystore['Salt1_PBKDF2'],
iterations=keystore['Iteration1_PBKDF2'], backend=backend)
aes_key = kdf1.derive(line.rstrip().encode())
cipher = Cipher(algorithms.AES(aes_key), modes.XTS(tweak), backend=backend)
decryptor = cipher.decryptor()
aes_decrypt = decryptor.update(keystore['Enc_Password'])
kdf2 = PBKDF2HMAC(algorithm=hash, length=keystore['KL2_PBKDF2'], salt=keystore['Salt2_PBKDF2'],
iterations=keystore['Iteration2_PBKDF2'], backend=backend)
final_hash = kdf2.derive(aes_decrypt)
if random.randint(1, 20) == 12:
print("\t%d password tested..." % count)
count += 1
if binascii.hexlify(final_hash).decode() == binascii.hexlify(keystore['Final_Hash'].rstrip(b'\x00')).decode():
print("\n[*] Password Found = %s" % line.rstrip())
exit(0)
print("\t[-] Password Not Found. You should try another dictionary.")
Это часть скрипта, которую мне нужно отредактировать, в примере Кармона есть функция для разбиения списка слов на куски, и каждому процессу присваивается свой кусок. Проблема, которую я реализую, состоит в том, что список слов заполняется только внутри функции (после выполнения других задач полный исходный код репо). Как мне реализовать многопроцессорность в этом разделе? Спасибо за любую помощь.