python 实现rar包的暴力破解压缩

  • 环境依赖
  • win10 下载安装设置环境变量

    win10 下载地址:http://www.rarlab.com/rar/UnRARDLL.exe

    并设置为环境变量

  • pip install unrar

实现代码

import multiprocessing,time,os
a=multiprocessing.Queue(2)
import itertools as its
from unrar import rarfile
type=True
total=0
def get_password(min_digits, max_digits, words):"""密码生成器:param min_digits: 密码最小长度:param max_digits: 密码最大长度:param words: 密码可能涉及的字符:return: 密码生成器"""while min_digits <= max_digits:pwds = its.product(words, repeat=min_digits)for pwd in pwds:yield ''.join(pwd)min_digits += 1def run(qa,word,min,max,file_path):'''放入数据:param qa:队列:param word:密码可能涉及的字符:param min:密码最小长度:param max:密码最大长度:return:'''global typebody=get_password(min,max,word)while True:if not os.path.exists(file_path):raise Exception("文件不存在")try:a=next(body)qa.put(a)print("put is %s" % a)except Exception as error:type=Falseprint(error)print("字典使用完毕")breakdef get_pwd(file_path, output_path, pwd):'''判断密码是否正确,成功后删除rar包:param file_path: 需要破解的文件路径,这里仅对单个文件进行破解:param output_path: 解压输出文件路径:param pwd: 传入的密码:return:'''global totaltry:file = rarfile.RarFile(file_path)file.extractall(path=output_path, pwd=pwd)# 如果发现文件被解压处理,移除该文件os.remove(file_path)# 说明当前密码有效,并告知print('Find password is "{}"'.format(pwd))print("总计total:%s"%str(total))return Trueexcept Exception as e:# 密码不正确print('"{}" is nor correct password!'.format(pwd),e)# print(e)total+=1print("总计失败 total:%s"%str(total))return Falsedef get_body(qa,file_path, output_path):''':param qa::param file_path::param output_path::return:'''print("is run")while True:if not os.path.exists(file_path):raise Exception("%s,文件不存在"%file_path)try:#队列中获取密码a=qa.get(block=True,timeout=3)try:# 放入文件get_pwd(file_path, output_path,a)print("passward is %s" % a)except Exception as error:print("file is none :%s"%error)except Exception as error:print("字典使用完毕:%s"%error)breakdef main(word,min,max,file_path,out_put_path,processNum,look=True):''':param word: 密码可能涉及的字符:param min: 密码最小长度:param max: 密码最大长度:param file_path: 需要破解的文件路径,这里仅对单个文件进行破解:param out_put_path: 解压输出文件夹路径:param processNum: 进程数量:param look: 是否需要看进程数量:return:'''qa = multiprocessing.Queue(10)put=multiprocessing.Process(target=run,name="put",args=(qa,word,min,max,file_path))put.start()for i in range(processNum):st_1=multiprocessing.Process(target=get_body,args=(qa,file_path,out_put_path))st_1.start()if look:while True:time.sleep(1)a = multiprocessing.active_children()if a:print(a)else:breakput.join()
if __name__ == '__main__':word = "qwedfghjrtsdfghjkjhgfdsfghjhtrewsegsdrtyudfgheasccbvngfdhre48962145"main(word,1,1,"case.rar","case_run",3)print("master is end")

python 实现rar包的暴力破解压缩相关推荐

  1. python之WEB登录密码暴力破解

    原理:利用字典爆破进行破解 实验环境:本机Win10(python3.7环境).虚拟机Win2003(搭建DVWA网站) 工具:火狐浏览器.Burp Suite 实现步骤: 1.获取正常登录时需要提交 ...

  2. 使用Python暴力破解压缩文件密码

    有一个加密的压缩文件,只记得密码前缀,但知道结尾是4位数字,想用Python暴力破解下. 刚开始想用Python标准库zipfile实现,先创建个密码为password的压缩文件test来测试: fr ...

  3. 20220215-CTF-MISC-BUUCTF-小明的保险箱-binwalk分析-dd命令分离出RAR文件-ARCHPR暴力破解密码

    CTF-MISC-BUUCTF-小明的保险箱 小明有一个保险箱,里面珍藏了小明的日记本,他记录了什么秘密呢?...告诉你,其实保险箱的密码四位纯数字密码.(答案格式:flag{答案},只需提交答案) ...

  4. 借助7Z.exe 实现RAR压缩包密码暴力破解 C语言实现

    吐槽几句 rar压缩包暴力破解这种软件 , 原理上挺简单的其实 , 就是不断的用字符去碰 , 指不定啥时候能碰上 , 爆破破解不就是这么回事嘛 , 之前下载个学习资料 , 说好的童叟无欺, 结果却给我 ...

  5. 其它 以字典的方式 暴力破解 压缩文件密码

    以前加密了一个压缩文件,里面全是回忆的照片,结果密码搞忘记了,我勒个去,然后就在网上下载了个软件暴力破解,结果很明显,没有破解出来.然后自己就思索怎么破解. 一开始是加QQ群,让别人帮忙破解,仍然没有 ...

  6. 用python写的简单zip暴力破解器

    简单zip破解器 首先介绍一下optparse模块** optparse是一个功能强大的处理命令行函数. 简单流程** 首先导入模块,创建OpertionParser对象 import optpars ...

  7. 小明用 Python 开发一个 【暴力破解压缩文件 zip 密码】,省了 250 块钱

    那天晚上 ‍ 小明和你一样 在某个小网站上搜寻某些 私密的学习资料 突然看到论坛有人提供了 一个非常牛逼的资源 小明怀着激动的心情 下载了下来 他怀着激动的心情 打开了这个压缩文件 看到就只有这么一个 ...

  8. 小明用Python开发一个 【暴力破解压缩文件zip密码】,省了250块钱!

    那天晚上 小明和你一样 在某个小网站上搜寻某些 私密的学习资料 突然看到论坛有人提供了 一个非常牛逼的资源 小明怀着激动的心情 下载了下来 他怀着激动的心情 打开了这个压缩文件 看到就只有这么一个 t ...

  9. Python zipfile 简单使用(暴力破解)

    2019独角兽企业重金招聘Python工程师标准>>> 1, 创建zip文件,arcname表示压缩文件的路径 def write(self, filename, arcname=N ...

最新文章

  1. 使用机器学习方法预测IBM员工流失数据模型
  2. 2017 Multi-University Training Contest - Team 3 Kanade's sum hd6058
  3. Shodan搜索引擎介绍
  4. LintCode: Single Number II
  5. 使用JDBC处理MySQL大数据
  6. MySQL Gap Lock问题
  7. 怎样实现MathType中带箭头向量的输入
  8. r vector 4 elements_Vector类与Enumeration接口
  9. LeetCode 1962. 移除石子使总数最小(优先队列)
  10. 马化腾亲自写腾讯网站,雷军靠写程序赚到第一个100万...那些码农出身的互联网大佬们...
  11. 产品级垃圾文本分类器
  12. 二进制安装MySQL
  13. 它又又又来了,Fastjson 最新高危漏洞来袭!快升级吧
  14. 理解Towards Understanding Ensemble, Knowledge Distillation and Self-Distillation in Deep Learning
  15. java进制转换所有方法_Java进制转换方法整理
  16. 黑白双色背景图java_黄色背景黑白双色简洁ppt图表
  17. Excel如何将两列数据左右调换位置
  18. 提问的艺术,原文链接
  19. 小程序上传身份证正反照,竖排照片横向展示
  20. python判断字符串是否包含英文字母

热门文章

  1. 手机Termux导入导出文件
  2. nginx+php-fpm的安装和配置
  3. latex 文字环绕图片,图片在文字旁边
  4. 当一名科技女性,决定不再做月亮
  5. 小红书数据分析网站:2023年如何产出爆文(纯干货分享)
  6. CentOS7-Docker 网络-06
  7. 苹果6尺寸_乔布斯曾说3.5英寸是手机的“黄金尺寸”,现在却是6英寸成为标配...
  8. android Studio 编写美图秀秀的简单demo
  9. 中国制造只有走向中高端挺进才能更好的施展拳脚
  10. 漫谈同源策略(SOP)和跨域资源共享(CORS)