???????如何利用python破解zip加密文件
前言:
日常工作中,會(huì)遇到一些加密的zip文件,但是因?yàn)槟承┰蚧蛘邥r(shí)間過長,密碼不知道了。但是zip文件中文件有很重要很必須。那么,我們試一試萬能的Python,暴力破解密碼。
一、破解zip加密文件的思路
- 準(zhǔn)備一個(gè)加密的zip文件。
- zipfile模塊可以解壓zip文件。
解壓時(shí)可以提供密碼zfile.extractall("./", pwd=password.encode("utf8"))
- itertools.permutations實(shí)現(xiàn)全字符的全排列。
通過函數(shù)itertools.permutations("abc", 3)實(shí)現(xiàn)全字符的全排列:abc/acb/bca/bac/cab/cba
二、實(shí)例代碼演示
0、zip的壓縮方式
本文介紹的zip文件知道密碼一共是4位的,密碼字符的范圍是a-z1-0。并且不存在重復(fù)字符的,不會(huì)有“aabb”的密碼。zip壓縮時(shí)是選擇了zip傳統(tǒng)加密!
1、解壓zip文件
導(dǎo)入zipfile模塊,使用其中的extractall()函數(shù)。
import itertools filename = "readme.zip" # 創(chuàng)建一個(gè)解壓的函數(shù),入?yún)槲募兔艽a # 并使用try-except,避免報(bào)錯(cuò)中斷程序。 def uncompress(file_name, pass_word): try: with zipfile.ZipFile(file_name) as z_file: z_file.extractall("./", pwd=pass_word.encode("utf-8")) return True except: return False
2、實(shí)現(xiàn)密碼字符的全排列
import zipfile import itertools filename = "readme.zip" # 創(chuàng)建一個(gè)解壓的函數(shù),入?yún)槲募兔艽a # 并使用try-except,避免報(bào)錯(cuò)中斷程序。 def uncompress(file_name, pass_word): try: with zipfile.ZipFile(file_name) as z_file: z_file.extractall("./", pwd=pass_word.encode("utf-8")) return True except: return False # chars是密碼可能的字符集 chars = "abcdefghijklmnopqrstuvwxyz0123456789" for c in itertools.permutations(chars, 4): password = ''.join(c) print(password) result = uncompress(filename, password) if not result: print('解壓失敗。', password) else: print('解壓成功。', password) break
文件壓縮時(shí),一些注意的事項(xiàng):
三、密碼是幾位未知,也可以破解密碼
查過一些資料,zip壓縮文件密碼最長為12位,在原來的程序上增加上一個(gè)for循環(huán)就可以實(shí)現(xiàn)破解密碼了。
import zipfile import itertools filename = "readme.zip" def uncompress(file_name, pass_word): try: with zipfile.ZipFile(file_name) as z_file: z_file.extractall("./", pwd=pass_word.encode("utf-8")) return True except: return False chars = "abcdefghijklmnopqrstuvwxyz0123456789" for i in range(12): for c in itertools.permutations(chars, i): password = ''.join(c) print(password) result = uncompress(filename, password) if not result: print('解壓失敗。', password) else: print('解壓成功。', password) break
總結(jié)
此方法可以是實(shí)現(xiàn)破解zip文件的密碼,python可以完成一些好玩的事情。
到此這篇關(guān)于如何利用python破解zip加密文件的文章就介紹到這了,更多相關(guān)python破解加密文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在PyCharm中實(shí)現(xiàn)關(guān)閉一個(gè)死循環(huán)程序的方法
今天小編就為大家分享一篇在PyCharm中實(shí)現(xiàn)關(guān)閉一個(gè)死循環(huán)程序的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-11-11Python機(jī)器學(xué)習(xí)性能度量利用鳶尾花數(shù)據(jù)繪制P-R曲線
這篇文章主要為大家介紹了Python機(jī)器學(xué)習(xí)性能度量利用鳶尾花數(shù)據(jù)繪制P-R曲線示例學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02基于python獲取本地時(shí)間并轉(zhuǎn)換時(shí)間戳和日期格式
這篇文章主要介紹了基于python獲取本地時(shí)間并轉(zhuǎn)換時(shí)間戳和日期格式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10C# DataGridView行列轉(zhuǎn)換的具體實(shí)現(xiàn)
本文主要介紹了C# DataGridView行列轉(zhuǎn)換的具體實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02python實(shí)現(xiàn)遞歸查找某個(gè)路徑下所有文件中的中文字符
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)遞歸查找某個(gè)路徑下所有文件中的中文字符,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08