Python破解壓縮包密碼問題


所用知識

  1. Pool 進程池

  2. try...except 異常處理

  3.枚舉的方式

  4.生成器的運用

邏輯關系

通過生成假密碼去碰撞!捕獲異常,一直碰撞,直到生成的密碼與壓縮包建立的密碼對應,成功拿到正確的密碼!

 

具體代碼

import zipfile,time
import itertools as its
from multiprocessing import Pool
#author = __rianley__
def extractFile(numer): password=generate_pwd(numer) #拿到生成器對象,密碼字典過大,只能用生成器否則一下就把內存撐爆了! zFile = zipfile.ZipFile('Suite 6.zip') # 打開zip包 for pwd in password: try: zFile.extractall(pwd=bytes(pwd,"utf-8")) return pwd except Exception as e: # print(pwd) continue def generate_pwd(numer): #生成密碼 words = "1234568790" #密碼范圍:當前表示純數字范圍 r = its.product(words, repeat=numer) for i in r: pwd = '' for num in i: pwd += num yield pwd if __name__ == '__main__': p = Pool() #開啟進程池 res_list = [] # 定義存放進程的列表 for i in range(1, 30): # 設置 隨機密碼的位數(如果別人的設置的密碼) res_run = p.apply_async(extractFile,args=(i,)) # res_run = extractFile(zFile,pwd) res_list.append(res_run) print('正在嘗試破解') # 打印一句提示性的信息 for kill in res_list: data=kill.get() if data: print('破解成功:密碼是:%s'%data) exit()

  

版本保護

  1.轉載請注明出處

  2.該文章以及代碼歸作者與博客園所有,嚴禁轉載不注明出處的行為!

  3.該文章所闡述的觀點,僅代表個人看法,代碼僅為學習使用!造成任何商業糾紛與原作者無關!

  4.本文由程小航編寫!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM