pyzipper是一种用于Python的替代zipfile,
zipfile只支持ZipCrypto(Zip传统加密)算法的破解,面对如今的压缩软件加密体系,已经不适用了。
pyzipper可以读取和写入加密AES zip文件。
方法一:根据生成的6位纯数字密码文件破解ZIP加密文件
# 生成6为纯数字密码文件
# 生成并打开密码文件
f = open("D:/password.txt","w")
# 生成6为数字
for id in range(10000000):
password = str(id).zfill(6) + '\n'
f.write(password)
# 关闭文件
f.close()
安装第三方包
pip install pyzipper
import pyzipper
# 检查ZIP文件是否存在
try:
zip_file = pyzipper.AESZipFile('D:/test.zip', 'r')
except:
print("压缩文件不存在")
# 检查密码文件是否存在
try:
passwd_file = open('D:/password.txt')
except:
print("解密文件不存在")
# 读取密码文件数据
for line in passwd_file.readlines():
# 去除换行符
passwd = line.rstrip('\n')
# 解压ZIP加密文件
try:
zip_file.extractall(pwd=str.encode(passwd))
print("压缩包解密成功,密码为:" + passwd)
break
except:
pass
zip_file.close()
passwd_file.close()
运行结果
压缩包解密成功,密码为:123456
方法二:不需要生成密码文件破解ZIP加密文件
import pyzipper
# 检查ZIP文件是否存在
try:
zip_file = pyzipper.AESZipFile('D:/test.zip', 'r')
except:
print("压缩文件不存在")
# 检查密码文件是否存在
try:
passwd_file = open('D:/password.txt')
except:
print("解密文件不存在")
# 读取密码文件数据
for number in range(0,999999,1):
# 去除换行符
passwd = line.rstrip('\n')
# 解压ZIP加密文件
try:
passwd = str(number)
zip_file.extractall(pwd=passwd.encode('utf-8'))
print("压缩包解密成功,密码为:" + passwd)
break
except:
pass
zip_file.close()
passwd_file.close()
运行结果
压缩包解密成功,密码为:123456