本文介绍了一个Python程序,用于尝试使用给定的随机密码解压名为./tp.zip的压缩包。程序包含一个生成随机密码的函数和一个主程序,通过遍历生成的密码直到找到可以成功解压的密码。
摘要生成于
,由 DeepSeek-R1 满血版支持,
passwd函数尝试给定的压缩包密码来解压:
path:文件路径
i:密码
def passwd(path,i):
type_ = os.path.splitext(path)[-1][1:]
if type_ == "zip":
with ZipFile(path,'r') as zip:
try:
zip.extractall('./create_data/文件',pwd=str(i).encode('utf-8'))
print(f"解压成功,密码是{i}")
print("解压后文件位置:./create_data/文件")
return 1
except Exception as e:
创建密码:
def create_pwd(length):
# words = '1234567890qwertyuiopalskdjfhgzmxncbv'
words='1234567890'
for i in range(1,length+1):
base = its.product(words,repeat=i)
for i in base:
yield ''.join(i)
if __name__ == '__main__':
path="./tp.zip"
for p in create_pwd(4):
print("输入密码为:",p)
flag = passwd(path,p)
if flag:
break
#遍历写出1位数内英文加字母的所有组合
def NumLetterOne():
NumLetter='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
for NumLetter1 in NumLetter:
NumLetter11 = NumLetter1
NumLetterSum = NumLetter11
with op
软件介绍:
本软件需要 .NET Framework 4.5.2 支持。Windows 8 / 8.1 / 10 的用户无需安装,完美兼容。Windows Vista / Windows 7 的用户安装 .NET Framework 4.5.2 之后,方可顺利运行本软件。解决方法 1:下载并安装 .NET Framework 4.5.2解决方法 2:直接运行并安装 NDP452-KB2901954-Web.exe即可。使用绿色版本的,推荐使用 RARPG.XP.exe所有文件必须放在同一目录!exe 与 dll 文件不得分开!备注:RARPG.exe 是RAR Password Enumerator v7.2 (Require .NET Framework 4.5.2)。RARPG.XP.exe 是 RAR Password Enumerator v7.2 (Require .NET Framework 4.0)。
枚举解密有密码的压缩包应该是常见需求了。没有工具的情况下可以自己写一段py脚本来实现。
环境:Windows10,python3.7.6
文章目录仅支持ZIP的版本支持ZIP和RAR的版本安装代码解释参考链接
仅支持ZIP的版本
我稍微改了下参考链接1的代码,可以正确运行。 他的代码在解密基础上加了多线程,但是他的代码会打印很多个密码(第一个打印的就是真密码)。
我对多线程了解很少,但我认为我这段代码是对的(只要对flag变量的所有操作都是原子的),因为只有一个线程能找到密码,找到密码的线程等待cpu调度期