您好,登錄后才能下訂單哦!
本篇內容主要講解“怎么利用python破解zip加密文件”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么利用python破解zip加密文件”吧!
準備一個加密的zip文件。
zipfile模塊可以解壓zip文件。
解壓時可以提供密碼zfile.extractall("./", pwd=password.encode("utf8"))
itertools.permutations實現全字符的全排列。
通過函數itertools.permutations("abc", 3)實現全字符的全排列:abc/acb/bca/bac/cab/cba
本文介紹的zip文件知道密碼一共是4位的,密碼字符的范圍是a-z1-0。并且不存在重復字符的,不會有“aabb”的密碼。zip壓縮時是選擇了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
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
到此,相信大家對“怎么利用python破解zip加密文件”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。