脚本功能:
  利用itertools生成密码字典(迭代器形式)
  多线程并发从密码字典中取出密码进行验证
  验证成功后把密码写入文件中保存
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# Author:Leslie-x
import itertools as its
import threading
import rarfile
import os words = '0123456789abcdefghijklmnopqrstuvwxyz' # 涉及到生成密码的参数 flag = True # 是否关闭线程的标志 def append_on_file(password,file_name):
# 把解析出的密码写入到文件中
with open('password.txt', 'a', encoding='utf8') as f:
text = file_name+':'+password + '\n'
f.write(text) 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 += 1 def extract(File,file_name):
"""
若线程关闭标志为True,就执行循环,从密码生成器中取出密码,验证密码是否正确
密码正确,则把密码写入文件中,并将线程关闭标志flag设定为False,通知其他线程关闭
"""
global flag
while flag:
p = next(passwords)
try:
File.extractall(pwd=p) # 打开压缩文件,提供密码...
flag = False
print("password is " + p) ###破解到密码
append_on_file(p,file_name)
break
except:
print(p) def mainStep(file_path,file_name):
"""
多线程并发验证密码
:param file_path: rar压缩文件路径列表
:return:
"""
file = rarfile.RarFile(file_path)
for pwd in range(3):
t = threading.Thread(target=extract, args=(file,file_name))
t.start() if __name__ == '__main__':
# 主程序
base_dir = r'E:\迅雷下载\rar'
for file_info in os.listdir(base_dir):
try:
# 拼接压缩文件路径
file_path = os.path.join(base_dir, file_info)
# 压缩文件名称
file_name = file_info.split('.')[0]
# 生成密码字典:密码长度最小为4,最大为11
passwords = get_password(4, 11, words)
# 将任务分发给线程执行
mainStep(file_path,file_name)
except:
pass
注意:当前脚本在知道密码长度大概范围,可能涉及的字符具体范围下效率可行;如果对密码长度和涉及字符完全不知,撞库难度非常大

利用itertools生成密码字典,多线程撞库破解rar压缩文件密码的更多相关文章

  1. mac电脑下使用fcrackzip破解zip压缩文件密码

    fcrackzip简介 fcrackzip是一款专门破解zip类型压缩文件密码的工具,工具小巧方便.破解速度快,能使用字典和指定字符集破解,适用于linux.mac osx 系统 fcrackzip安 ...

  2. zip、rar压缩文件密码破解——使用ARCHPR Professional Edition

    直链下载地址: https://pan.abn.cc/weiyun/down.php?u=82441366e3c1f43fc69210e8ece93470.undefined.zip (压缩包内含解压 ...

  3. 破解ZIP加密文件密码fcrackzip

    破解ZIP加密文件密码fcrackzip ZIP是最常见的文件压缩方式.由于其压缩算法开源,主流操作系统都支持这种压缩算法.ZIP压缩方式支持密码加密.加密的时候会在文件头部保存密钥相关信息.利用这个 ...

  4. 破解压缩文件密码rarcrack

    破解压缩文件密码rarcrack   常见的压缩文件格式有ZIP.RAR和7z.这三种格式都支持使用密码进行加密压缩.前面讲过破解ZIP压缩文件,可以使用fcrackzip.对于RAR和7z格式,可以 ...

  5. 利用CMake生成动态或静态链接库工程

    install解释: TARGETS版本的install命令 install(TARGETS targets... [EXPORT <export-name>] [[ARCHIVE|LIB ...

  6. 利用python暴力破解压缩文件密码

    import randomimport sysimport zipfileimport timefrom threading import Threadfrom multiprocessing imp ...

  7. Python真牛逼,获取压缩文件密码,我只要一分钟!

    事情的经过是这样的: 又是奶茶,行吧行吧. 快点开工,争取李大伟回来之前搞定. 李大伟说是6位数字密码 那么我们可以利用python生成全部的六位数字密码 这样,我们就生成了一个从000000到999 ...

  8. centos破解压缩文件密码

    rarcrack是linux系统端的一款破解加密压缩包的工具,rarcrack使用的穷举法进行破解已经加密的rar.zip和7z压缩包,支持设置多线程,和文件类型进行破解. 1.rarcrack下载页 ...

  9. 利用pyinstaller生成exe之后,运行不能正常产生结果文件问题记录

    https://segmentfault.com/q/1010000011284617/a-1020000011493026 在此链接已解决问题,现在在这里在详细记录一次 问题描述: 利用pychar ...

随机推荐

  1. java 中的内部类总结

    内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类. 如同一个人是由大脑.肢体.器官等身体结果组成,而内部类相当于其中的某个器官之一,例如心脏:它也有自己的属性和行为(血液.跳动). 显 ...

  2. 前后端同学必会的Linux基础命令

    无论是前端还是后端同学,一些常用的linux命令还是必须要掌握的.发布版本.查看日志等等都会用到.以下是我简单的总结了一些简单又常用的命令,欢迎大家补充.希望能帮助到大家 基础篇 1.进入目录 cd ...

  3. team330团队铁大兼职网站使用说明

    项目名称:铁大兼职网站 项目形式:网站 网站链接:http://39.106.30.16:8080/zhaopinweb/mainpage.jsp 开发团队:team330 网站上线时间:2018年1 ...

  4. 配置HugePage

    翻译自https://www.thegeekdiary.com/centos-rhel-67-how-to-configure-hugepages/ 什么是HugePage HugePages是Lin ...

  5. 新手上路 git你好

    天哪,虽然我是一个学计算机的,但是我发现我的计算机学的真是……好吧不说了,言归正传.​ 这几天一直在着手于git,可能只是学了一个皮毛,结果也是不大尽人意,跟着别人学了学,鼓捣了鼓捣,还是有点小小的收 ...

  6. 格式化输出Json对象

    1.调用方式: alert(JsonUti.convertToString(jsonObj)); //jsonObj为json对象. 2.格式化输出Json对象方法定义: var JsonUti = ...

  7. js 复制到剪切板

    function copyTextToClipboard(text) { var copyFrom = $('<textarea/>'); copyFrom.text(text); $(' ...

  8. Make Palindrome CodeForces - 600C(思维)

    A string is called palindrome if it reads the same from left to right and from right to left. For ex ...

  9. 【题解】 [ZJOI2008] 泡泡堂(贪心/二分图/动态规划)

    懒得复制,戳我戳我 Solution: 就是有一个贪心策略:(以下假设使\(A\)队分数更高) \(First:\)比较两个分值的最小值,如果\(A\)最小分比\(B\)最小分大就直接比较两个最小的, ...

  10. 【BZOJ1487】[HNOI2009]无归岛(动态规划)

    [BZOJ1487][HNOI2009]无归岛(动态规划) 题面 BZOJ 洛谷 题解 哪来的这么多废话啊,直接说一个仙人掌得了. 然后就是要你求仙人掌最大独立集了.(随便蒯份原来的代码就过了) 不过 ...