一、场景
由于网上下载了个zip文件,想解压,发现需要密码,但是又忘记了下载的来源
二、方法
暴力破解:完全不知道密码是啥,只能以组合密码的方式进行遍历,如果知道可能得密码组合会快很多,如纯数字,纯字母等
字典破解:比如你知道可能得密码是多少,但是可能有很多种组合。
本质上都是对可能密码组合的遍历
三、示例代码
我是完全不知道密码可能是啥,上代码,不废话。
import zipfile
import itertools
zip_file = zipfile.ZipFile(r'C:\Users\Administrator\Downloads\burpsuite_pro_v2023.5.zip')
print(zip_file.namelist())
zip_member = zip_file.namelist()[1]
# result = zip_file.extract(member=zip_file.namelist()[1], path=".", pwd="mht".encode())
# print(result)
def crack_zip(length):
for combination in itertools.product('abcdefghijklmnopqrstuvwxyz0123456789', repeat=length):
password = ''.join(combination)
print(f"try password: {password}")
try:
result = zip_file.extract(member=zip_file.namelist()[1], path=".", pwd=password.encode())
print(f'Password found: {password}')
# print(zip_file.extractall(pwd=password.encode())) # 此方法会阻塞
return result
except Exception as e:
print(f"err: {e}")
continue
else:
return False
for length in range(1, 7):
print(f"length: {length}")
if crack_zip(length):
break
密码复杂度可以修改“abcdefghijklmnopqrstuvwxyz0123456789”,密码长度可以修改range(1, 7)
四、结果
跑出来了,纯字母组合
用跑出来的密码解压试试
没报错,完美撒花。
参考链接:
(86条消息) Python破解.zip文件的密码_白石水晶的博客-CSDN博客
大神教你用Python破解压缩文件zip密码