• 利用python生成破解字典


    有一个加密的zip文件需要解压,目前知道密码为0-9的三位数的密码

    利用 itertools生成字典,然后使用zipfile模块,进行解密操作。

    import itertools as its
    words = "1234567890"
    r = its.product(words,repeat=3)
    dic = open("dictionary.txt",'a')
    for i in r:
        dic.write("".join(i)+"
    ")
    
    dic.close()

    打开dictionary这个文件,可以看到生成的密码。

    its.product(words, repeat=6)是这段代码最主要的部分,从给定的字母表中返回选择的列表。由于本例中密码长度为3位,所以此处设定了重复3次(repeat=3)

    下面进行解压操作:

    # coding=utf-8
    import zipfile
    import os
    from threading import Thread
    import time
    
    # 压缩文件的路径
    path = r'D:py	est1.zip'
    
    
    # password='1234'
    
    def pojie_zip(path, password):
        if path[-4:] == '.zip':
            # path = dir+ '\' +file
            # print path
            zip = zipfile.ZipFile(path, "r", zipfile.zlib.DEFLATED)
            # print zip.namelist()
            try:
                # 若解压成功,则返回True,和密码
                zip.extractall(path='D:\py\test\', members=zip.namelist(), pwd=password)
                print ' ----success!,The password is %s' % password
                zip.close()
                return True
            except:
                pass  # 如果发生异常,不报错
            print 'error'
    
    
    def get_pass():
        # 密码字典的路径
        passPath = 'D:\py\test\dictionary.txt'
        passFile = open(passPath, 'r')
        for line in passFile.readlines():
            password = line.strip('
    ')
            print 'Try the password %s' % password
            if pojie_zip(path, password):
                break
        passFile.close()
    
    
    if __name__ == '__main__':
        start = time.clock()
        get_pass()
        print "done (%.2f seconds)" % (time.clock() - start)

    因为是加密文件,所以用生成的密码文件  逐行读取,尝试密码,最后解压成功。

    现实情况中,对于密码的组成可能没有任何线索,所以需要对各种情况去尝试。

  • 相关阅读:
    3-12 初识JWT
    3-11 用户登录信息验证实现
    3-10 公共模块统一测试
    3-9 公共业务异常统一处理
    3-8 公共返回对象封装
    3-7 公共请求对象封装及优雅验证数据实现
    3-6 MD5介绍及用户添加功能实现
    3-5 用户模块数据层构建
    3-4 用户模块构建
    3-3 公共工具模块构建
  • 原文地址:https://www.cnblogs.com/jinjidedale/p/7083589.html
Copyright © 2020-2023  润新知