如何利用python破解zip加密文件
前言:
日常工作中,會遇到一些加密的zip文件,但是因為某些原因或者時間過長,密碼不知道瞭。但是zip文件中文件有很重要很必須。那麼,我們試一試萬能的Python,暴力破解密碼。
一、破解zip加密文件的思路
- 準備一個加密的zip文件。
- zipfile模塊可以解壓zip文件。
解壓時可以提供密碼zfile.extractall("./", pwd=password.encode("utf8"))
- itertools.permutations實現全字符的全排列。
通過函數itertools.permutations("abc", 3)實現全字符的全排列:abc/acb/bca/bac/cab/cba
二、實例代碼演示
0、zip的壓縮方式
本文介紹的zip文件知道密碼一共是4位的,密碼字符的范圍是a-z1-0。並且不存在重復字符的,不會有“aabb”的密碼。zip壓縮時是選擇瞭zip傳統加密!
1、解壓zip文件
導入zipfile模塊,使用其中的extractall()函數。
import itertools filename = "readme.zip" # 創建一個解壓的函數,入參為文件名和密碼 # 並使用try-except,避免報錯中斷程序。 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、實現密碼字符的全排列
import zipfile import itertools filename = "readme.zip" # 創建一個解壓的函數,入參為文件名和密碼 # 並使用try-except,避免報錯中斷程序。 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
文件壓縮時,一些註意的事項:
三、密碼是幾位未知,也可以破解密碼
查過一些資料,zip壓縮文件密碼最長為12位,在原來的程序上增加上一個for循環就可以實現破解密碼瞭。
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
總結
此方法可以是實現破解zip文件的密碼,python可以完成一些好玩的事情。
到此這篇關於如何利用python破解zip加密文件的文章就介紹到這瞭,更多相關python破解加密文件內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 手把手教你怎麼用Python實現zip文件密碼的破解
- Python實現暴力破解有密碼的zip文件的方法
- Python實現爆破ZIP文件(支持純數字,數字+字母,密碼本)
- 教你利用Python破解ZIP或RAR文件密碼
- Python壓縮包處理模塊zipfile和py7zr操作代碼