我正在搞一个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