zoukankan      html  css  js  c++  java
  • 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.本文由程小航编写!

  • 相关阅读:
    <<程序员>> 杂志网站
    插入排序
    冒泡排序
    TCP/IP编程实现远程文件传输
    选择排序
    防止基础表数据变动,导致相关的历史记录数据产生变动的解决方案
    发布一个RSS辅助类
    感谢jquery和firebug,让我也终于敢于写javascript了
    DevExpress ASPxGridView 使用文档四:数据源
    DevExpress ASPxGridView 使用文档六:模板
  • 原文地址:https://www.cnblogs.com/rianley/p/9361000.html
Copyright © 2011-2022 走看看