python破解加密压缩包

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: python破解加密压缩包

相信大家都遇到过这种情况,下载文件的时候遇到压缩包又没有密码,或者说自己设置的加密密码,但是忘记了,就很难受。下面就将为大家介绍如何解决这一问题
相信大家都遇到过这种情况,下载文件的时候遇到压缩包又没有密码,或者说自己设置的加密密码,但是忘记了,就很难受~

在Python程序员面前,这都是小问题!

一、准备工作

我们先打开一个加密的压缩包尝试原始方法解压一下

然后弹出来让我输密码

正常打不开,如果你点击跳过所有加密,它也不会打开,直接就关闭当前你窗口了。

我们打开pycharm,新建一个py文件,暂且我把它命名为zip_pwd

不会安装 可以私信找我要资料

在这之前呢,我们先要去收集一些信息,比如当前的密码位数与类型。

类型包含包括它有没有特殊字符,有没有字符串,是不是纯数字。

假设我们现在已知信息呢,总共有两个,已知当前密码类型为整形,六位数密码。

我们先创建一个纯数字6位密码库,你也可以去GitHub上面下载一个包含所有字符的密码字典库,这个现在是开源的,破解时间具体要看设置的密码长短、复杂与否。

二、开始操作

已知我们现在的密码是六位纯数字,那么怎么自己创建密码字典呢?

首先我们要完成一个文件写入的功能

首先声明一个变量 f

f = open()

Python内置函数

open是一个IO流,可以完成文件读写功能。

比如说我先想在一个文件里写入一些内容,就可以通过open去做 。

然后我们通过open创建一个文件,名字暂且命名为possword.txt,在加入一个写入方式,以 w方式去写入。

f = open('password.txt','w')

然后通过循环去创建密码,密码设置个1000000

for id in range(1000000)

这时候需要创建一个password变量生成密码,创建之前先导入一个方法的包。

import zipfile

然后通过password可以开始生成密码了 ,这个zfill等于 6位的,再加上换行,因为生成一个密码就要换一行,并且生成密码应该是一个字符串类型。

password = str(id).zfill(6) + '\n'

然后通过f.write方法把password写入到文件当中

f.write(password)

写进去之后要去关闭当前的文件流

f.close()

然后我们来尝试去生成一下,看看能不能成功。

import zipfile

f = open('password.txt','w')
for id in range(1000000)

password = str(id).zfill(6) + '\n'
f.write(password)

f.close()

可以看到这里给我们生成了一个possword.txt密码字典,它是一个密码库。

从000000一直到999999它已经全部生成出来了。

这就是一个简单的密码字典生成方式,如果要去生成一个比较复杂的密码肯定不会这么简单,给你们看个一个复杂的,这里我就不演示了,看看就可以了,将近写了一万多行。

搞定六位数数字密码字典后我们需要完成解决压缩文件密码的函数

首先我们先来声明一个函数 ,取个名字叫file,然后加入两个行参。

第一个是我的压缩文件zipfile,第二个是当前需要传入的密码password

def pwd_file(zipfile,password):
传完行参后写上一个异常处理,调用zipfile,它里面会有一个方法extractall传入两个值,第一个是pwd传入字节,在字节里传入行参,编码集是utf8

tey:
zipfile.extractall(pwd=bytes(password, 'utf8'))

然后print压缩包密码,打印password

print('压缩包密码:', password)
因为密码库里面密码比较多,只有一个正确的,其它的都是错误的,所以肯定会报错,所以我们要写一个异常处理,写上一个pass就可以了,报错了就给它pass掉。

except:

pass

这就是一个简单的函数,我们通过zipfile它里面的一个extractall方法去智能的获取正确密码,它是可以自动匹配密码的。

所以说Python牛逼,很多东西都不需要我们去写,直接调用就好了。

然后我们来写上执行函数

先写上一个main函数

def main():

在main函数里面,通过zipfile方法把加密的压缩文件代入到代码中。

zipFlie = zipfile.ZipFile('./获取文件密码.zip')
通过pwd生成一个list变量,打开生成的密码文件。

pwd_list = open('./password.txt')

然后我们需要一个一个去试密码,这个是一行一行的去读。

for line in pwd_list.readlines():

读到一个就把它写进去,拿到一个密码删除一个换行符。

pwd = line.strip('\n')

通过pwd_file调用之前写的函数,传zipFlie和pwd

pwd_file(zipFlie, pwd)

最后写入函数入口,写上一个main,为什么要写这个函数入口呢?不写也可以运行的。

因为它是用来去做测试的。

if __name__是一个测试入口,什么意思呢?

比如我在当前文件下导入了其它文件库,但是我又不想用,我就可以通过if让它不去运行,所以可写可不写,当一个延伸。

if name == '__main__':

main()

全部代码

import zipfile

f = open('password.txt', 'w')
for id in range(1000000):

password = str(id).zfill(6) + '\n'
f.write(password)

f.close()

def pwd_file(zipFlie, password):

try:
    zipFlie.extractall(pwd=bytes(password, 'utf8'))
    print('压缩包密码:', password)
except:
    pass

def main():

zipFlie = zipfile.ZipFile('./获取文件密码.zip')
pwd_list = open('./password.txt')
for line in pwd_list.readlines():
    pwd = line.strip('\n')
    pwd_file(zipFlie, pwd)

if name == '__main__':

main()

我们看看效果,可以看到压缩包的密码已经打印出来了。

如果你要获取的密码越复杂,你的电脑越好就计算的越快。

制作不易 此文章最终解释权归政胤工作室所有

目录
相关文章
|
3月前
|
安全 Linux 数据安全/隐私保护
python知识点100篇系列(15)-加密python源代码为pyd文件
【10月更文挑战第5天】为了保护Python源码不被查看,可将其编译成二进制文件(Windows下为.pyd,Linux下为.so)。以Python3.8为例,通过Cython工具,先写好Python代码并加入`# cython: language_level=3`指令,安装easycython库后,使用`easycython *.py`命令编译源文件,最终生成.pyd文件供直接导入使用。
python知识点100篇系列(15)-加密python源代码为pyd文件
|
3月前
|
数据安全/隐私保护 Python
Zipfile学习笔记(二)::通过zipfile模块暴力破解加密的压缩文件
如何使用Python的zipfile模块生成密码表并尝试暴力破解加密的ZIP压缩文件。
57 1
Zipfile学习笔记(二)::通过zipfile模块暴力破解加密的压缩文件
|
3月前
|
算法 安全 Go
RSA加密算法详解与Python和Go实现
RSA加密算法详解与Python和Go实现
223 1
|
3月前
|
数据安全/隐私保护 Python
python学习十一:python常用模块使用,如 加密模块pyarmor,时间模块time等
这篇文章介绍了Python中两个常用模块的使用:加密模块pyarmor用于保护代码,以及时间模块time用于处理时间相关的功能。
105 0
|
3月前
|
数据安全/隐私保护 Python
Python中的MD5加密“解密”
Python中的MD5加密“解密”
118 0
|
3月前
|
安全 测试技术 Go
Python 和 Go 实现 AES 加密算法的技术详解
Python 和 Go 实现 AES 加密算法的技术详解
161 0
|
数据安全/隐私保护 Python
|
测试技术 Python
|
1月前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!