文件解壓操作流程「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(“又錯了”)

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/276922.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-19 13:23
下一篇 2024-12-19 13:23

相關推薦

發表回復

登錄後才能評論