通過python內建的zipfile模組實現對zip檔案的解壓,加點料完成口令破解
zipfile模組用來做zip格式編碼的壓縮和解壓縮的,zipfile裡有兩個非常重要的class, 分別是zipfile和zipinfo, 在絕大多數的情況下,我們只需要使用這兩個class就可以了。zipfile是主要的類,用來建立和讀取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, 分別為檔名,檔案大小,檔案資料在壓縮包中的偏移。
假設我們有乙個已知密碼為123的zip檔案
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為輸出的路徑
測試成功,下面進行暴力破解
#此**適合於破解密碼為0-999999的密碼,數字區間可以自己設定
import time
import zipfile
from tqdm import tqdm
def zipcrackl(start,end):
a = time.time()
zfile = zipfile.zipfile('d:/baidunetdiskdownload/16.zip')#把要破解的zip的檔名替換zipfile裡面的引數
for i in tqdm(range(start,end)):
try:
zfile.extractall(path='c:\\users\\administrator\\desktop\\',pwd=str(i))
print(u'密碼是:'+str(i))
print(u'破解時間是:'+str(time.time()-a)+'s')#破解時間減去開始那個時刻的時間,得到的就是破解這個壓縮檔案的時間
break
except exception as e:
#print(e)
pass
if __name__ == '__main__':
zipcrackl(0,999999)
如果密碼中還有其他非數字字元,考慮使用破解字典的方法。
以下**中pwd為自己設定的密碼字典。
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("又錯了")
暴力破解zip檔案密碼
lb2.config text 密碼 password flag true except exception as e pass def fn zippath,pwdpath zfile zipfile.zipfile zippath passfile open pwdpath n 0lines p...
python暴力破解加密zip文件
由參加的乙個安全大賽來的。flag檔案在乙個加密的zip檔案裡面,金鑰為6 8位的數字。寫了個python指令碼進行暴力解壓縮。其中暴力破解的密碼生成採用itertools庫提供的函式來產生。即product函式,product函式為求迭代器的笛卡爾積。如下 list1 1,2,3 list2 a,...
Python實戰 暴力破解zip檔案解壓密碼
首先測試檔案為test.txt 僅包含單行文字 壓縮後檔案為test.zip,壓縮密碼為2340,壓縮後刪除目錄下的txt檔案。上圖注意勾選傳統加密。指的是不用0開頭的數字密碼,0開頭見後面的字母組合。原理就是zipfile模組解壓壓縮檔案時,一旦密碼不正確,程式會終止,在try語句只有成功解壓的密...