python暴力破解含密码的zip压缩文件

   python有zip的类库,解压缩zip文件很方面,代码中,我没有使用多线程,如果追求速度的话,可以使用多线程

思路:

1.先自己生成一份txt的密码字典

2.然后读取出来,一个个的尝试,当密码错误是,程序会报错中断,所以密码错误,要使用pass

3.当解压缩成功后,中断程序,输出正确密码

import zipfile
import os
from threading import Thread
import time
#压缩文件的路径
path = r'C:\Users\Administrator\Desktop\moeMaid-master.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='C:\\Users\\Administrator\\Desktop\\',members=zip.namelist() , pwd=password)
            print ' ----success!,The password is %s' % password
            zip.close()
            return True
        except:
            pass  #如果发生异常,不报错
        print 'error'
        
        
def get_pass():
    #密码字典的路径
    passPath='C:\\Users\\Administrator\\Desktop\\zip.txt'
    passFile=open(passPath,'r')
    for line in passFile.readlines():
        password=line.strip('\n')
        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)


这是我解压缩一个5.4M文件的速度,其实时间都花在了解压缩上了

首先你需要了解一下zip文件的结构,一个zip文件包多个文件和目录,其中每个文件或目录都有一个相对路径,路径信息存储在zip文件的中央目录中。中央目录位于zip文件的末尾,记录了每个文件的信息,包括文件名、文件大小、压缩前大小、压缩方式、压缩时间等。 如果你知道了zip文件的密码,可以直接使用Python自带的zipfile库进行解压,示例代码如下: ```python import zipfile zip_file = zipfile.ZipFile('example.zip') # 解压所有文件到指定目录 zip_file.extractall(path='extract_dir', pwd=b'password') ``` 其中,'example.zip'是待解压的zip文件,'extract_dir'是解压后文件的存放目录,b'password'是zip文件的密码。 如果你不知道zip文件的密码,可以使用Python中的字典攻击工具来破解密码。字典攻击工具通常需要准备一个密码字典文件,然后逐一尝试字典中的每个密码,直到找到正确的密码为止。 下面是使用Python中的fcrackzip库进行字典攻击的示例代码: ```python import fcrackzip # 设置字典文件路径 wordlist_path = 'passwords.txt' # 设置zip文件路径 zip_file_path = 'example.zip' # 创建fcrackzip对象 cracker = fcrackzip.FCrackZip() # 设置字典文件路径和zip文件路径 cracker.set_dictionary(wordlist_path) cracker.set_zipfile(zip_file_path) # 开始破解 result = cracker.crack() # 输出破解结果 print(result) ``` 其中,'passwords.txt'是密码字典文件的路径,'example.zip'是待破解的zip文件的路径。fcrackzip库使用的是暴力破解和字典破解两种方式,因此可能会耗费很长时间才能破解成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值