簡簡單單利用字典破解zip檔案口令

2021-10-24 08:44:59 字數 1835 閱讀 8417

前幾天在一本書上看到一篇可以利用字典破解zip檔案密碼的文章,覺得比較有意思於是研究了一番,在這裡分享一下

主要是利用python裡自帶的zipfile庫中的extractall函式來實現的,簡單匯入zipfile之後,例項化乙個zipfile類。利用extractall()來解壓這個檔案,並在引數pwd上填入正確密碼

這時我們發現執行指令碼之後,fate.zip會被正確解壓,而填入錯誤密碼則會入下圖一樣報錯

try expect來處理異常資訊。

假定zip檔案密碼為fate,pwd.txt為字典檔案

import zipfile 

zfile = zipfile.zipfile(r"d:\python\fate.zip"

)passfile =

open

(r"d:\python\pwd.txt"

)for line in passfile.readlines():

password = line.strip(

'\n'

)# noinspection pybroadexception

try:

zfile.extractall(pwd=password.encode(

"utf=8"))

print

("password="

+password)

except exception as e:

pass

需要注意的是python3以及不支援自動ascii碼了,在extractall的pwd引數後需手動新增編碼型別,# noinspection pybroadexception則是為了防止pycharm報錯

將程式模組化後,在利用多執行緒處理可以提高程式效能,可以利用thread來實現多執行緒處理

import zipfile

from threading import thread

defextractfile

(zfile,password)

:# noinspection pybroadexception

try:

zfile.extractall(pwd=password.encode(

"utf=8"))

print

("password="

+password)

except exception as e:

pass

defmain()

: 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__"使函式只在當前模組執行,當被匯入時不運

簡簡單單編譯原理

都說編譯原理挺難,其實它並不像大家想象中的那麼難,it s so easy 總的來說編譯原理可以分為以下幾個知識點 文法的分類 不確定的有限狀態自動機到確定的有限狀態自動機的轉換 正規表示式。掌握了這三個知識點,編譯原理中每個題的道理了,其實編譯原理就是這麼回事。下面具體介紹上面說的三個知識點 1....

簡簡單單寫程式

寫程式這麼多年,總有幾百萬行了。感覺,程式寫的方向,總的來說越來越簡單。乙個函式,簡簡單單幾行就完了,乙個類,簡簡單單幾個公有方法,也就完了。簡單,就不容易出錯,自己看自己的 看昏了的也有,乙個函式幾千行,人的腦子,堆疊顯然不夠用,看了後面,忘了前面,何苦呢。簡單,就好懂,乙個工程完了,心裡其實很發...

簡簡單單聯合查詢

最近兩節過於簡單都不配有腦圖 聯合查詢 union 含義 將多條查詢語句的結果合併成乙個結果 語法 查詢語句1 union 查詢語句2 應用場景 要查詢的結果來自多個表,且多個表沒有直接的連線關係,但查詢的資訊一致時 注意事項 1 要求多條查詢語句的查詢列數是一致的 2 要求多條查詢語句每一列的型別...