本文將介紹如何通過zipfile包對加密zip文件進行破解。
zipfile是Python自帶的一個zip壓縮/解壓縮庫。
作為例子,我們創建一個zip壓縮文件“test.zip”,並為其密碼“123456”。
我們可以通過如下代碼對這個文件進行解壓縮:

這段代碼的執行結果是將test.zip中壓縮的文件解壓到當前工作目錄下。
等一下,在上面的例子里,我們知道解壓縮密碼是什麼。但是現實情況往往是我們不知道密碼。不要急,我們先來看一下如果密碼錯了會發生什麼。

不出所料,系統拋出一個異常:
RuntimeError: Bad password for file ‘test.txt’
雖然解壓縮失敗了,但是我們知道了一個重要信息,那就是我們可以通過捕獲這個異常來得知當前密碼是否正確。
既然有了快速檢測密碼是否正確的方法,我們就可以通過暴力搜索的方式對密碼進行破解。
密碼破解的一個常用手段就是使用密碼字典。密碼字典通常是一個文件,裡面保存着大量常用密碼。我們通過對字典用的密碼進行遍歷,如果真實密碼出現在密碼字典中,那麼就可以成功破解。具體代碼如下:

輸出結果為:
Password = ‘123456’
當然,這種方法的成功率很大程度上取決於密碼字典的大小。密碼字典越大,包含的密碼就越多,成功破解的概率就越大。但這同時帶來一個問題,那就是更多的嘗試次數會使得程序運行時間變長。
我們注意到,嘗試不同的密碼的過程完全是獨立的,因此可以利用多線程並行執行,從而提高運行效率:

大家可以在此基礎上,發揮想象力,去實現更加強大的功能。
最後我要說的是,本文僅供技術學習和研究用,請不要利用它去做一些不好的事情。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/226536.html
微信掃一掃
支付寶掃一掃