,,手把手教你使用Python解决简单的zip文件解压密码

,,手把手教你使用Python解决简单的zip文件解压密码

主要介绍python对简单的zipfile解压密码的解决方案,使用的核心模块是Python标准库中的Zipfile模块。有一定的参考价值,有兴趣的可以了解一下。

目录

创建纯数字密码和字母数字混合密码的配置文件补充说明

简介

使用的核心模块是python标准库中的zipfile模块。该模块可以实现zip文件的各种功能。详情请查阅官方参考文献。这里的暴力破解是指试图将密码可能序列中的值一个一个地密码化,这对于人来说很难,对于计算机来说并不难。有时候我们下载的zip文件需要密码解压,我们却不知道。我们得付钱才能知道。所以,这里有两种被暴力破解的密码:纯数字密码和英文数字组合密码。

文件创建

首先,测试文件是test.txt(只包含单行文本),压缩文件是test.zip,压缩密码是2340。压缩后,删除目录中的txt文件。

注意上图勾选了传统加密。

纯数字密码

它是指不以0开头的数字密码。0的开头后面是字母组合。原理是当zipfile模块解压压缩文件时,一旦密码不正确,程序就会被终止。在try语句中,只有成功解压缩的密码才会被执行到extract函数调用后的语句中。

代码:

导入zip文件

导入时间

导入线程

startTime=time.time()

#确定是否需要终止线程。

标志=真

定义提取(密码、文件):

尝试:

password=str(密码)

file.extractall(路径=' . ',pwd=password.encode('utf-8 '))

打印('密码是{} '。格式(密码))

nowTime=time.time()

打印('花费时间为{} '。格式(nowTime-startTime))

全球旗帜

#成功解压缩其余线程并终止。

标志=假

例外情况为e:

打印(e)

def do_main():

zfile=zipfile。ZipFile('test.zip ',' r ')

#开始尝试

对于范围内的数字(1,9999):

如果标志为真:

t=螺纹。Thread(target=extract,args=(number,zfile))

启动()

t.join()

if __name__=='__main__ ':

do_main()

显然,解压是成功的。这里提到这种编码密码的方法只适用于传统的zip加密。winrar有一个新的默认加密方法,这是不允许的。

字母数字混合密码

这里的密码组合太多了。为了防止内存溢出,使用了迭代器。这种情况需要的时间比较长,可以清闲的挂脚本。这里,再次压缩文件。密码是python。

导入zip文件

随机导入

导入时间

导入系统

类MyIterator():

#单位字符集

letters=' abcdefghijklmnopqrstuvwxyz 012345678 '

min_digits=0

max_digits=0

def __init__(self,min_digits,max_digits):

#实例化一个对象时,给定密码位范围,一般4到10位。

如果最小位数最大位数:

self.min_digits=min_digits

self.max_digits=max_digits

否则:

self.min_digits=max_digits

self.max_digits=min_digits

#迭代器访问定义

def __iter__(self):

回归自我

def __next__(自己):

rst=str()

对于范围内的项目(0,random . rand range(self . min _ digits,self.max_digits 1)):

rst=random . choice(my iterator . letters)

返回rst

定义提取():

start_time=time.time()

zfile=zipfile。ZipFile('test.zip ')

对于MyIterator(5,6)中的p:

尝试:

zfile.extractall(path=' . ',pwd=str(p)。编码(' utf-8 '))

打印('密码是{} '。格式(p))

now_time=time.time()

打印('花费时间为{} '。格式(现在时间-开始时间))

sys.exit(0)

例外情况为e:

及格

if __name__=='__main__ ':

提取()

字符的序列组合很多,需要等待。

补充说明

很多人反馈这种方式无效,主要是文件路径不正确(我的代码默认是从Python脚本所在目录的zip文件中提取的)以及加密方式不是传统加密。这种暴力破解的方法只有在你大致记住密码位数和密码格式(比如只有字母等)的情况下才实用。),而完全暴力破解是不现实的。毕竟加密不是白做的。

这就是这篇教你如何使用Python解决简单zip文件解压密码的文章。关于Python zip文件解压密码的更多信息,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: