利用Python暴力破解zip文件口令的方法詳解
前言
通過Python內置的zipfile模塊實現對zip文件的解壓,加點料完成口令破解
zipfile模塊用來做zip格式編碼的壓縮和解壓縮的,zipfile里有兩個非常重要的class, 分別是ZipFile和ZipInfo, 在絕大多數的情況下,我們只需要使用這兩個class就可以了。ZipFile是主要的類,用來創(chuàng)建和讀取zip文件而ZipInfo是存儲的zip文件的每個文件的信息的。
比如要讀取一個Python zipfile 模塊,這里假設filename是一個文件的路徑:
import zipfile z = zipfile.ZipFile(filename, 'r') for i in z.infolist(): print i.file_size, i.header_offset
這里使用了z.infolist(), 它返回的就是壓縮包內所有文件的信息,就是一個ZipInfo的列表。一個ZipInfo對象中包含了壓縮包內一個文件的信息,其中比較常用的是 filename, file_size, header_offset, 分別為文件名,文件大小,文件數據在壓縮包中的偏移。
準備階段
首先你需要一個壓縮文件,并且給它加上密碼,樣子長成這樣


然后你就成功Get了一個自帶密碼的壓縮文件,好了,這就結束了
暴力破解
首先我們先知道下什么是暴力破解,其實簡單粗暴點來說,就是通過輪循的方式比對,我們一定都知道MD5加密,那么MD5是不可逆的,那網上那些所謂的MD5解密的網站是怎么做到的,其實也是暴力破解的方式。
舉個栗子,你通過MD5加密了一段字符串 str="abc" 加密后的結果為 "3cd24fb0d6963f7d" 這么一長串別人肯定看不懂,MD5解密網站怎么做的,他們自己沒事干的時候開始瞎試,把aa/cc/bb/abc 啥的都開始用MD5加密一遍,存到自己的數據庫里,當你去查詢的時候,他們會根據你提供的 "3cd24fb0d6963f7d" 在數據庫里面比對,如果巧合的話就能找不到,大部分情況你的加密字符串稍微復雜點都找不到,這就是所謂的MD5解密,也就是暴力破解了
上代碼
import zipfile #導入模塊,它是做壓縮和解壓縮的
password="123" #我們設定的口令
zfile = zipfile.ZipFile("test.zip") #要解壓縮的壓縮包
zfile.extractall(path='C:\\Users\\Administrator\\Desktop\\', members=zfile.namelist(), pwd=password.encode('utf-8'))
#進行解壓縮操作,path為輸出的路徑
我們運行一下上面的代碼(當然你的加密口令要為123),會發(fā)現在桌面上已經把test.zip解壓出來了,完美ending,不對還差一個暴力破解呢,自己知道密碼還要破解啥有用,別著急,繼續(xù)往下看
import zipfile
zfile = zipfile.ZipFile("test.zip")
passFile=open('pwd.txt') #讀取你設定的密碼文件
for line in passFile.readlines():
try:
password = line.strip('\n')
zfile.extractall(path='C:\\Users\\Administrator\\Desktop\\', members=zfile.namelist(), pwd=password.encode('utf-8'))
break
except:
print("又錯了")
pwd.txt里面內容如下
1223 abc aaa 123
好了,這就完成了zip文件口令的暴力破解,其實只是很巧妙的利用了try except異常機制,當解壓正常的時候就正常密碼正常,解壓失敗會報出異常,動手試試
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關文章
pip install -r requirements.txt時遇到報錯自動跳過
本文主要介紹了pip install -r requirements.txt時遇到報錯自動跳過,下面就來介紹了幾種解決方法,具有一定的參考價值,感興趣的可以了解一下2025-03-03
Python tkinter實現春節(jié)煙花效果demo
這篇文章主要為大家介紹了Python實現春節(jié)煙花效果demo,本文為大家提供了兩種實現方式代碼,詳細的實現一場浪漫的煙花秀,有需要的朋友可以借鑒參考下2024-01-01

