Атака по словарю Python RAR - оптимизация
У меня есть несколько старых файлов RAR, и я знаю общий формат паролей, которые я использовал, поэтому я создал файл словаря, объединяющий эти слова различными способами. Файл словаря составляет 500 МБ, и я написал программу на Python для использования словаря.
Проблема заключается в том, что программа работала всю ночь и занимает всего 1% пути. Теперь я разделил файл словаря и запускаю несколько экземпляров программы, но каждый экземпляр работает довольно медленно.
Буду рад любым советам о том, как улучшить скорость. Я очень плохо знаком с Python, что будет очевидно из моего кода (но я действительно наслаждаюсь Python)
import itertools
import sys, traceback
import os
with open('dictionary.txt') as infile:
words = [line.strip() for line in infile]
for word1 in itertools.product(words, repeat=1):
fword = word1[0]
print "Attempting: " + fword
# open unrar and test password
output = os.popen("unrar.exe x protected.rar -p" + fword)
outstring = output.read()
slng = len(outstring)
# unrar.exe returns "All OK" for correct password
validate = outstring.find("All OK", 0, slng)
if validate != -1:
print "Found password: " + fword
with open('correct_password.txt', 'w') as outfile:
outfile.write(fword)
sys.exit(0)
else:
# continue searching
print "invalid password"
raw_input("Password was not in this dictionary!")
Образец dictionary.txt
FableLand
FableWay
FableTree
FableSpirit
FableApple