python簡單利用字典破解zip文件口令
前幾天在一本書上看到一篇可以利用字典破解zip文件密碼的文章,覺得比較有意思于是研究了一番,在這里分享一下
原理
主要是利用python里自帶的zipfile庫中的extractall函數(shù)來實(shí)現(xiàn)的,簡單導(dǎo)入zipfile之后,實(shí)例化一個(gè)ZipFile類。利用extractall()來解壓這個(gè)文件,并在參數(shù)pwd上填入正確密碼

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

