脚本功能:

利用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

注意:当前脚本在知道密码长度大概范围,可能涉及的字符具体范围下效率可行;如果对密码长度和涉及字符完全不知,撞库难度非常大

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

python多线程破解压缩包_python利用itertools生成密码字典并多线程撞库破解rar密码...相关推荐

  1. python pandas excel数据处理_Python利用pandas处理Excel数据的应用

    python如何将列表导出为csv文件 import pandas as pd list=[[1,2,3],[4,5,6],[7,8,9]] column=['column1','column2',' ...

  2. python 多帧 超分辨_利用python-opencv生成视频帧数控制,和常见错误总结

    首先呢 利用opencv生成视频的例子相信网络上已经很多了.但是大多数例子都只是捕获一个摄像头就没了.但是在实际运用中会发现.因为涉及到图像处理,生成的视频要不就就是过快要不就是比实际时间长. 控制视 ...

  3. 使用python hashlib模块给明文字符串加密,以及如何撞库破解密码

    文章目录: 1 hashlib介绍 2 hashlib模块使用 2.1 查看hashlib中有哪些hash算法 2.2 对字符串进行加密 2.3 对于数据比较大,加密可以分块,结果一样 2.4 has ...

  4. python生成20个随机数列表_Python利用random生成一个列表内的随机数

    首先,需要导入random模块:import random 随机取1-33之间的1个随机数,可能重复:random.choice(range(1,34)) print得到一系列随机数,执行一次得到一个 ...

  5. python rsa 公钥解密_python利用rsa库做公钥解密的方法教程

    前言 对于RSA的解密,即密文的数字的 D 次方求mod N 即可,即密文和自己做 D 次乘法,再对结果除以 N 求余数即可得到明文.D 和 N 的组合就是私钥(private key). 算法的加密 ...

  6. python 英文关键词提取_python 利用jieba.analyse进行 关键词提取

    1.简单应用 代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*- # @File : jieba.analyse.py # @Author: 赵路仓 ...

  7. python numpy 子数组_Python利用Numpy数组进行数据处理(一)

    Numpy数组使你可以将许多种数据处理任务表达为简洁的数组表达式(否则需要编写循环).用数组表达式代替循环的做法,通常被称为矢量化. np.meshgrid函数接受两个一维数组,并产生两个二维矩阵(对 ...

  8. python opencv 录制视频_Python利用opencv实现录制视频

    import cv2 import threading    #python 多线程操作库 class RecordingThread(threading.Thread): def __init__( ...

  9. python概率随机抽奖_Python利用带权重随机数解决抽奖和游戏爆装备

    关于带权随机数 为了帮助理解,先来看三类随机问题的对比: 1.已有n条记录,从中选取m条记录,选取出来的记录前后顺序不管. 实现思路:按行遍历所有记录,约隔n/m条取一个数据即可 2.在1类情况下,还 ...

  10. python绘制表格界面_python 读取 excel 生成 html 页面

    前言 有天老板找我到办公室跟我说要做一个商城,商城卖出去东西就有佣金可以拿.我听着就头大.老板打开电脑给我看了网站:你看一下这个网站,照着它的流程就可以拥有一个商城了.我靠过去一看,大概了解一下:原来 ...

最新文章

  1. 【Ubuntu】Ubuntu下的录频软件SimpleScreenRecorder
  2. RF-LIO:面向高动态场景的紧耦合LiDAR惯导融合里程计(IROS 2021)
  3. 【PHPExcel】设置打印格式
  4. python 多分类 recall_python实现二分类和多分类的ROC曲线教程
  5. stm8s串口奇偶校验学习笔记
  6. boost::io::ostream_joiner和boost::io::make_ostream_joiner用法的测试程序
  7. 如何使用 Python 将图片变为字符的模样
  8. oracle 11g rac impdp,RAC创建DBlink并使用impdp抽取源库数据
  9. 8月23号,来上海整整一年
  10. java web教程下载_Java Web云应用开发项目式教程 中文pdf扫描版[208MB]
  11. 小作业-drawline换成drawrectangle和fillRectangle
  12. 数据库系统---数据挖掘
  13. (web前端每日一练)用JavaScript制作一个跟随鼠标的小球炫彩动画 /doge/doge
  14. 裸辞后破釜沉舟三个月,拿到SSP!
  15. 服务器不能使用无线键盘,无线键盘突然没反应怎么回事_无线键盘没反应的解决方法...
  16. c#的特性(Attribute、Obsolete、Conditional)
  17. 基于数据库的代码自动生成工具,生成JavaBean、生成数据库文档、生成前后端代码等(v6.9.0版)
  18. excel中文件合并F9键
  19. User-Agent 大全
  20. react native 调用手机内置地图

热门文章

  1. XRD格式转换 神器
  2. 2022-2027年中国电容器行业市场全景评估及发展战略规划报告
  3. 用树莓派USB摄像头做个监控
  4. mysql nlssort函数_Oracle中 nls_sort 和 nlssort 排序功能
  5. http 请求 返回状态码 405 的问题
  6. html斜杠单元格,用斜杠拆分左侧单元格的html表
  7. 2023年度深圳市中小试基地认定资助申请指南
  8. 公司项目JAVA开发规范总结(七)——编程规范
  9. 机器学习中的 Shapley 值怎么理解?
  10. java nio 大文件_java nio 超大文件的读写