Python暴力破解ZIP文件密碼?Python暴力破解ZIP文件密碼通過Python内置的zipfile模塊實現對zip文件的解壓,加點料完成口令破解,下面我們就來說一說關于Python暴力破解ZIP文件密碼?我們一起去了解并探讨一下這個問題吧!
Python暴力破解ZIP文件密碼
通過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
1
2
3
4
這裡使用了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為輸出的路徑
1
2
3
4
5
測試成功,下面進行暴力破解
#此代碼适合于破解密碼為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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
如果密碼中還有其他非數字字符,考慮使用破解字典的方法。
以下代碼中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("又錯了")
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!