詳解python破解zip文件密碼的方法
1、單線程破解純數(shù)字密碼
注意: 不包括數(shù)字0開(kāi)頭的密碼
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開(kāi)頭的密碼
import zipfile,time,threading start_time = time.time() flag = True # 用于判斷線程是否需要終止,為True時(shí)程序執(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é)果:
提示: 多線程對(duì)數(shù)字型的運(yùn)算沒(méi)有多大幫助
3、破解英文+數(shù)字型的密碼
import random,zipfile,time,sys class MyIter(): cset = 'abcdefghijklmnopqrstuvwxyz0123456789' def __init__(self,min,max):#迭代器實(shí)現(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實(shí)列對(duì)象 return self def __next__(self):#通過(guò)不斷地輪循,生成密碼 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):#隨機(jī)迭代出1~4位數(shù)的密碼,在不明確位數(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文件密碼的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
python3獲取視頻文件播放時(shí)長(zhǎng)的三種方法
這篇文章主要介紹了python3獲取視頻文件播放時(shí)長(zhǎng)的三種方法,VideoFileClip,CV2以及FFmpeg這三種方法,文章通過(guò)代碼示例給大家講解的非常詳細(xì),需要的朋友可以參考下2024-04-04pytest自動(dòng)化測(cè)試中的fixture的聲明和調(diào)用
這篇文章主要為大家介紹了pytest自動(dòng)化測(cè)試中的fixture的聲明和調(diào)用,文中含有詳細(xì)示例操作有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10python 圖像判斷,清晰度(明暗),彩色與黑白實(shí)例
這篇文章主要介紹了python 圖像判斷,清晰度(明暗),彩色與黑白實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06python實(shí)現(xiàn)web應(yīng)用框架之增加動(dòng)態(tài)路由
這篇文章主要介紹web應(yīng)用框架如何添加動(dòng)態(tài)路由,在我們編寫的框架中,我們添加動(dòng)態(tài)路由,是使用了正則表達(dá)式,同時(shí)在注冊(cè)的時(shí)候,需要注明該路由是請(qǐng)求路由,文中有詳細(xì)的代碼示例,需要的朋友可以參考下2023-05-05Python 網(wǎng)絡(luò)編程之UDP發(fā)送接收數(shù)據(jù)功能示例【基于socket套接字】
這篇文章主要介紹了Python 網(wǎng)絡(luò)編程之UDP發(fā)送接收數(shù)據(jù)功能,結(jié)合實(shí)例形式分析了Python使用socket套接字實(shí)現(xiàn)基于UDP協(xié)議的數(shù)據(jù)發(fā)送端與接收端相關(guān)操作技巧,需要的朋友可以參考下2019-10-10Numpy中np.dot與np.matmul的區(qū)別詳解
本文主要介紹了Numpy中np.dot與np.matmul的區(qū)別詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02