詳解python破解zip文件密碼的方法
1、單線程破解純數(shù)字密碼
注意: 不包括數(shù)字0開頭的密碼
import zipfile,time,sys start_time = time.time() def extract(): zfile = zipfile.ZipFile('IdonKnow.zip')#讀取壓縮包,如果用必要可以加上'r' for num in range(1,99999,1): try: pwd = str(num) zfile.extractall(path='.',pwd=pwd.encode('utf-8')) print ("當(dāng)前壓縮密碼為:",pwd) end_time = time.time() print ('單線程破解壓縮包花了%s秒'%(end_time-start_time)) sys.exit(0) except Exception as e: pass if __name__=="__main__": extract()
破解結(jié)果:
2、多線程破解純數(shù)字密碼
注意: 不包括數(shù)字0開頭的密碼
import zipfile,time,threading start_time = time.time() flag = True # 用于判斷線程是否需要終止,為True時程序執(zhí)行 def extract(password, file): try: password = str(password) file.extractall(path='.', pwd=password.encode('utf-8')) print ("當(dāng)前壓縮密碼為:",password) end_time = time.time() print ('多線程破解壓縮包花了%s秒'%(end_time-start_time)) global flag flag = False#成功解壓其余線程終止 except Exception as e: pass def main(): zfile = zipfile.ZipFile("test.zip", 'r') for number in range(1, 99999,1): if flag: thr1 = threading.Thread(target=extract, args=(number, zfile)) thr2 = threading.Thread(target=extract, args=(number, zfile)) thr1.start() thr2.start() thr1.join() thr2.join() if __name__ == '__main__': main()
破解結(jié)果:
提示: 多線程對數(shù)字型的運算沒有多大幫助
3、破解英文+數(shù)字型的密碼
import random,zipfile,time,sys class MyIter(): cset = 'abcdefghijklmnopqrstuvwxyz0123456789' def __init__(self,min,max):#迭代器實現(xiàn)初始方法,傳入?yún)?shù) if min < max: self.minlen = min self.maxlen = max else: self.ninlen = max self.maxlen = min def __iter__(self):#直接返回slef實列對象 return self def __next__(self):#通過不斷地輪循,生成密碼 rec = '' for i in range(0,random.randrange(self.minlen,self.maxlen+1)): rec += random.choice(MyIter.cset) return rec def extract(): start_time = time.time() zfile = zipfile.ZipFile('test1.zip','r') for password in MyIter(1,4):#隨機迭代出1~4位數(shù)的密碼,在不明確位數(shù)的時候做相應(yīng)的調(diào)整 if zfile: try: zfile.extractall(path='.',pwd=str(password).encode('utf-8')) print ("當(dāng)前壓縮密碼為:",password) end_time = time.time() print ('當(dāng)前破解壓縮包花了%s秒'%(end_time-start_time)) sys.exit(0) except Exception as e: print ('pass密碼:',password) pass if __name__=="__main__": extract()
破解結(jié)果:
總結(jié)
以上所述是小編給大家介紹的python破解zip文件密碼的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
pytest自動化測試中的fixture的聲明和調(diào)用
這篇文章主要為大家介紹了pytest自動化測試中的fixture的聲明和調(diào)用,文中含有詳細示例操作有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10python實現(xiàn)web應(yīng)用框架之增加動態(tài)路由
這篇文章主要介紹web應(yīng)用框架如何添加動態(tài)路由,在我們編寫的框架中,我們添加動態(tài)路由,是使用了正則表達式,同時在注冊的時候,需要注明該路由是請求路由,文中有詳細的代碼示例,需要的朋友可以參考下2023-05-05Python 網(wǎng)絡(luò)編程之UDP發(fā)送接收數(shù)據(jù)功能示例【基于socket套接字】
這篇文章主要介紹了Python 網(wǎng)絡(luò)編程之UDP發(fā)送接收數(shù)據(jù)功能,結(jié)合實例形式分析了Python使用socket套接字實現(xiàn)基于UDP協(xié)議的數(shù)據(jù)發(fā)送端與接收端相關(guān)操作技巧,需要的朋友可以參考下2019-10-10Numpy中np.dot與np.matmul的區(qū)別詳解
本文主要介紹了Numpy中np.dot與np.matmul的區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02