python簡(jiǎn)單利用字典破解zip文件口令
前幾天在一本書(shū)上看到一篇可以利用字典破解zip文件密碼的文章,覺(jué)得比較有意思于是研究了一番,在這里分享一下
原理
主要是利用python里自帶的zipfile庫(kù)中的extractall函數(shù)來(lái)實(shí)現(xiàn)的,簡(jiǎn)單導(dǎo)入zipfile之后,實(shí)例化一個(gè)ZipFile類。利用extractall()來(lái)解壓這個(gè)文件,并在參數(shù)pwd上填入正確密碼
這時(shí)我們發(fā)現(xiàn)執(zhí)行腳本之后,fate.zip會(huì)被正確解壓,而填入錯(cuò)誤密碼則會(huì)入下圖一樣報(bào)錯(cuò)
因此
我們可以利用因口令不正確而拋出的異常來(lái)測(cè)試字典文件中是否有zip文件的密碼,并利用try expect
來(lái)處理異常信息。
代碼
假定zip文件密碼為fate,pwd.txt為字典文件需要注意的是python3以及不支持自動(dòng)ascii碼了,在extractall的pwd參數(shù)后需手動(dòng)添加編碼類型,# noinspection PyBroadException
則是為了防止PyCharm報(bào)錯(cuò)
提高性能
將程序模塊化后,在利用多線程處理可以提高程序性能,可以利用Thread來(lái)實(shí)現(xiàn)多線程處理
import zipfile from threading import Thread def extractfile(zFile,password): # noinspection PyBroadException try: zFile.extractall(pwd=password.encode("utf=8")) print("password="+password) except Exception as e: pass def main(): zFile = zipfile.ZipFile(r"D:\python\fate.zip") passFile = open(r"D:\python\pwd.txt") for line in passFile.readlines(): password = line.strip('\n') t = Thread(target=extractfile(zFile , password)) t.start() if __name__ == "__main__": main()
利用if __name__ == "__main__"
使函數(shù)只在當(dāng)前模塊運(yùn)行,當(dāng)被導(dǎo)入時(shí)不運(yùn)行
結(jié)語(yǔ)
到此這篇關(guān)于python簡(jiǎn)單利用字典破解zip文件口令的文章就介紹到這了,更多相關(guān)python字典破解zip文件口令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中使用攝像頭實(shí)現(xiàn)簡(jiǎn)單的延時(shí)攝影技術(shù)
這篇文章主要介紹了Python中使用攝像頭實(shí)現(xiàn)簡(jiǎn)單的延時(shí)攝影技術(shù),本文只是一個(gè)簡(jiǎn)單的小示例,講解了實(shí)現(xiàn)過(guò)程并給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-03-03多版本python的pip 升級(jí)后, pip2 pip3 與python版本失配解決方法
在本篇文章里小編給大家整理的是關(guān)于多版本python的pip 升級(jí)后, pip2 pip3 與python版本失配的解決方法內(nèi)容,需要的朋友們學(xué)習(xí)下。2019-09-09Python中的集合一起來(lái)學(xué)習(xí)一下
這篇文章主要為大家詳細(xì)介紹了Python集合,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-03-03Django之使用celery和NGINX生成靜態(tài)頁(yè)面實(shí)現(xiàn)性能優(yōu)化
這篇文章主要介紹了Django之使用celery和NGINX生成靜態(tài)頁(yè)面實(shí)現(xiàn)性能優(yōu)化,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Python循環(huán)結(jié)構(gòu)的應(yīng)用場(chǎng)景詳解
這篇文章主要介紹了Python循環(huán)結(jié)構(gòu)的應(yīng)用場(chǎng)景詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07從0開(kāi)始的Python學(xué)習(xí)014面向?qū)ο缶幊蹋ㄍ扑])
這篇文章主要介紹了Python面向?qū)ο缶幊蹋闹型ㄟ^(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04TFRecord格式存儲(chǔ)數(shù)據(jù)與隊(duì)列讀取實(shí)例
今天小編就為大家分享一篇TFRecord格式存儲(chǔ)數(shù)據(jù)與隊(duì)列讀取實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01Python使用scipy進(jìn)行曲線擬合的方法實(shí)例
這篇文章主要給大家介紹了關(guān)于Python使用scipy進(jìn)行曲線擬合的相關(guān)資料,Scipy優(yōu)化和擬合采用的是optimize模塊,該模塊提供了函數(shù)最小值(標(biāo)量或多維)、曲線擬合和尋找等式的根的有用算法,需要的朋友可以參考下2022-05-05