• 【Python】zip文件密码破解


    掌握基础语法后,尝试使用python的zipfile模块练手。

    zipfile是Python里用来做zip格式编码的压缩和解压缩的。

    这里将大体的思路分解成四段代码,逐一完善功能;

    第一段代码:解压zip

    首先了解python解压zip文件的库

    import zipfile
    
    # 定义通用解压函数
    def tryZipPwd(zFile,savePath,pw =None):
    
        # 如果密码是空就直接解压,使用异常判断
        try:
            # 如果密码为空就直接解压
            if pw == None:
                zFile.extractall(path=savePath)
            else:
                # 将密码转换为utf-8编码
                zFile.extractall(path=savePath,pwd=pw.encode('utf-8'))
            print('[+] ZIp文件解压成功,密码:%s' %(pw))
            return True
        except:
            print('[-]Zip文件解压失败,密码:%s' % (pw))
            return False
    

    第二段 解压zip函数的使用

    将通用解压zip的函数,传入参数引用就可以了

    # 指定密码打开Zip文件,密码是123qwer
    #with zipfile.ZipFile('C:/Users/Windows32/Desktop/untitled/sucess.zip') as zFile:
    #    tryZipPwd(zFile,'C:/Users/Windows32/Desktop/untitled/','1234qwer')
    
    

    第三段代码 读取文件内容

    python逐行读取文件内容的三种方法;

    方法1:

    f = open("foo.txt")             # 返回一个文件对象  
    line = f.readline()             # 调用文件的 readline()方法  
    while line:  
        print line,                 # 后面跟 ',' 将忽略换行符  
        # print(line, end = '')   # 在 Python 3中使用  
        line = f.readline()  
    
    f.close()  
    

    方法2:

    for line in open("foo.txt"):  
        print line,  
    

    方法3:

    f = open("c:\1.txt","r")  
    lines = f.readlines()#读取全部内容  
    for line in lines  
        print line  
    

    第四段代码-读取密码文本,批量传入密码尝试解压zip文件

    综合以上的代码就可以实现zip压缩包的密码破解了,pass.txt是CSDN泄露的TOP100常用密码,写了for循环与while循环的代码;

    # -*- coding: utf-8 -*-
    import zipfile
    
    # 定义通用解压函数
    def tryZipPwd(zFile,savePath,pw =None):
    
        try:
            if pw == None:
                zFile.extractall(path=savePath)
            else:
                zFile.extractall(path=savePath,pwd=pw.encode('utf-8'))
            print('[+] ZIp文件解压成功,密码:%s' %(pw))
            return True
        except:
           # print('[-]Zip文件解压失败,密码:%s' % (pw))
            return False
    
    # 指定密码打开Zip文件
    #with zipfile.ZipFile('C:/Users/Windows32/Desktop/untitled/sucess.zip') as zFile:
    #    tryZipPwd(zFile,'C:/Users/Windows32/Desktop/untitled/','1234qwer')
    
    # 逐行读取文本里的密码,然后传入通用解压函数中
    passFile = open('C:/Users/Windows32/Desktop/untitled/pass1.txt')
    
    # for循环
    # 当破解成功后退出程序与关闭文件流
    for i in open('C:/Users/Windows32/Desktop/untitled/pass1.txt'):
        # 将文本里的换行清除
        password = i.strip('
    ')
        with zipfile.ZipFile('C:/Users/Windows32/Desktop/untitled/sucess.zip') as zFile:
            # 传回函数执行状态,如果返回结果为真,就代表解压zip文件成功,输出当前的密码
            flag = tryZipPwd(zFile,'C:/Users/Windows32/Desktop/untitled/',password)
            if flag:
                print("sucess pass is %s" % (i))
                exit(0)
                passFile.close()
        i = passFile.readline()
    passFile.close()
    
    
    # while循环
    line =  passFile.readline()
    while line:
        line = line.strip('
    ')
        with zipfile.ZipFile('C:/Users/Windows32/Desktop/untitled/sucess.zip') as zFile:
            flag = tryZipPwd(zFile,'C:/Users/Windows32/Desktop/untitled/',line)
            if flag:
                print("sucess pass is %s" % (line))
                exit(0)
                passFile.close()
        line = passFile.readline()
    passFile.close()
    
  • 相关阅读:
    js 的一些兼容性写法
    浏览器 Event对象 及 属性 的兼容处理
    js 三元表达式 复杂写法
    Angular.js中使用$watch监听模型变化
    Android学习之——ViewPager及应用引导页的开发
    Android开发中常用的库总结(持续更新)
    Android学习之——GridView
    Android开发工具——Android studio1.0正式版使用技巧
    Android学习之——ListView下拉刷新
    Android学习之——ListView
  • 原文地址:https://www.cnblogs.com/17bdw/p/6132540.html
Copyright © 2020-2023  润新知