python:zip文件(加密了)之瞎猜密码
有一个百度网盘下载的 zip文件(加密了),想不花钱就知道密码。
编写 zip_mima.py 如下
# -*- coding: utf-8 -*-
import zipfile
from datetime import datetimedef try_password(filename, password):try:with zipfile.ZipFile(filename) as zf:zf.extractall(pwd=password.encode('utf-8'))print(f"Password found: {password}")return Trueexcept Exception as e:#print(f"Incorrect password: {password}")return Falsefilename = "程序员数学:用Python学透线性代数和微积分_.zip"
time0 = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
print(f"time0: {time0}")
# 密码可以是一个单词列表,或者使用更复杂的字典攻击
# 尝试常见密码
with open('password.lst','r') as fp:for passwd in fp:if try_password(filename, passwd.rstrip()):breaktime1 = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
print(f"time1: {time1}")
passwords = []
fp = open('dictionary.txt','r')
for line in fp:passwords.append(line.rstrip())
fp.close()
n = 0
# 尝试字典密码
for passwd in passwords:n +=1if n %100000 ==0:time1 = datetime.now().strftime('%Y-%m-%d %H:%M:%S')print(f"{n}: {time1}")if try_password(filename, passwd):break
print(n)
time2 = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
print(f"time2: {time2}")
运行 python zip_mima.py
如果安装了【压缩包密码解除软件】,那么在C:\Users\用户名\AppData\Local\压缩包密码解除软件\dictionary\ 可以找到 dictionary.txt 约120万行。
在C:\Users\用户名\AppData\Local\压缩包密码解除软件\crack\ 有常见密码 password.lst
如果有网友尝试出该zip包密码,请在评论区回复。
参阅:程序员数学:用Python学透线性代数和微积分
aye4