posts - 72,comments - 0,views - 52686

先安装Python3 在pip install rarfile 

新建一个txt的文本文件,在把尾缀改成.py

复制下面的代码,就可以运行了 

 

 

 

import rarfile
import itertools
import string

 

def extract_rar(rar_path, password):
try:
with rarfile.RarFile(rar_path) as rf:
rf.extractall(pwd=password)
return True
except rarfile.BadRarFile:
print("这是一个无效的 RAR 文件。")
return False
except rarfile.PasswordRequired:
return False # 密码错误继续尝试
except rarfile.NeedFirstVolume:
print("需要第一个卷。")
return False
except rarfile.Error as e:
if "bad password" in str(e).lower():
return False
else:
print(f"发生错误: {e}")
return False
except Exception as e:
print(f"发生错误: {e}")
return False

 

def password_cracker(characters, min_length, max_length):
rar_file_path = input("请输入要破解的 RAR 文件路径:")
file_size = None
try:
with rarfile.RarFile(rar_file_path) as rf:
file_size = rf.filelist[0].file_size if rf.filelist else None
except Exception as e:
print(f"获取文件大小失败: {e}")

for length in range(min_length, max_length + 1):
for password_tuple in itertools.product(characters, repeat=length):
password = ''.join(password_tuple)
print(f"尝试密码: {password}")
print(f"尝试路径: {rar_file_path}")

try:
if extract_rar(rar_file_path, password):
# 再次确认解压后文件大小是否与原始文件一致(如果能获取到原始文件大小)
if file_size is not None:
with rarfile.RarFile(rar_file_path) as rf:
extracted_file_size = rf.filelist[0].file_size if rf.filelist else None
if extracted_file_size == file_size:
print(f"成功破解密码: {password}")
return
else:
print("解压文件大小与原始文件不一致,可能密码错误或文件有问题。")
else:
print(f"extracted_file_size: {extracted_file_size}")
print(f"file_size: {file_size}")
print(f"成功破解密码: {password}")
return
except Exception as e:
print(f"尝试密码 {password} 时发生错误: {e}")

print("未能找到密码。")

 

if __name__ == "__main__":
characters = string.ascii_lowercase + string.ascii_uppercase + string.digits + "!@#$%^&*()"
min_length = int(input("请输入最小密码长度(例如 3):"))
max_length = int(input("请输入最大密码长度(例如 6):"))
password_cracker(characters, min_length, max_length)

 

 

Python3.13版本 运行的,亲测有效,如有错误麻烦指出

posted on   假装新手  阅读(253)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示