我正在搞一個zip文件破解程序,並決定使用多處理模塊來加速進程。這是一個完整的痛苦,因爲這是我第一次使用該模塊,我甚至還沒有完全理解它。但是,我得到它的工作。在Python 3中進行多重處理
問題是它沒有完成單詞列表;它只是在單詞列表中隨機停止放置,如果找到密碼,它將繼續通過單詞列表,而不僅僅是停止該過程。
有誰知道它爲什麼會出現這種行爲?
源代碼的ZipFile餅乾
#!/usr/bin/env python3
import multiprocessing as mp
import zipfile # Handeling the zipfile
import sys # Command line arguments, and quiting application
import time # To calculate runtime
def usage(program_name):
print("Usage: {0} <path to zipfile> <dictionary>".format(program_name))
sys.exit(1)
def cracker(password):
try:
zFile.extractall(pwd=password)
print("[+] Password Found! : {0}".format(password.decode('utf-8')))
pool.close()
except:
pass
def main():
global zFile
global pool
if len(sys.argv) < 3:
usage(sys.argv[0])
zFile = zipfile.ZipFile(sys.argv[1])
print("[*] Started Cracking")
startime = time.time()
pool = mp.Pool()
for i in open(sys.argv[2], 'r', errors='ignore'):
pswd = bytes(i.strip('\n'), 'utf-8')
pool.apply_async(cracker, (pswd,))
print (pswd)
runtime = round(time.time() - startime, 5)
print ("[*] Runtime:", runtime, 'seconds')
sys.exit(0)
if __name__ == "__main__":
main()
謝謝,您的幫助表示感謝 – Abdulrahman7ossam
對不起,但腳本你寫作品罰款與小單詞列表,但與大單詞列表此錯誤提出: RuntimeError:文件被加密,需要提取密碼 任何想法? –
Abdulrahman7ossam
現在爲任何單詞列表提出了同樣的錯誤。 – Abdulrahman7ossam