python利用itertools生成密码字典并多线程撞库破解rar密码


Posted in Python onAugust 12, 2019

脚本功能:

  • 利用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入门学习之字符串与比较运算符
Oct 12 Python
用 Python 爬了爬自己的微信朋友(实例讲解)
Aug 25 Python
基于python select.select模块通信的实例讲解
Sep 21 Python
python编写朴素贝叶斯用于文本分类
Dec 21 Python
Python设计模式之代理模式简单示例
Jan 09 Python
Django使用详解:ORM 的反向查找(related_name)
May 30 Python
详解Django解决ajax跨域访问问题
Aug 24 Python
python根据多个文件名批量查找文件
Aug 13 Python
python实现每天自动签到领积分的示例代码
Aug 18 Python
Python Parser的用法
May 12 Python
实例详解Python的进程,线程和协程
Mar 13 Python
numpy array找出符合条件的数并赋值的示例代码
Jun 01 Python
Python实现网页截图(PyQT5)过程解析
Aug 12 #Python
python实现知乎高颜值图片爬取
Aug 12 #Python
python3 enum模块的应用实例详解
Aug 12 #Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
Aug 12 #Python
django+echart数据动态显示的例子
Aug 12 #Python
Flask框架学习笔记之使用Flask实现表单开发详解
Aug 12 #Python
Flask框架学习笔记之表单基础介绍与表单提交方式
Aug 12 #Python
You might like
PHP 多维数组的排序问题 根据二维数组中某个项排序
2011/11/09 PHP
PHP的构造方法,析构方法和this关键字详细介绍
2013/10/22 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
Prototype RegExp对象 学习
2009/07/19 Javascript
javascript函数中的arguments参数
2010/08/01 Javascript
深入理解jQuery中live与bind方法的区别
2013/12/18 Javascript
node.js中使用node-schedule实现定时任务实例
2014/06/03 Javascript
Javascript正则控制文本框只能输入整数或浮点数
2014/09/02 Javascript
jquery调整表格行tr上下顺序实例讲解
2016/01/09 Javascript
AngularJs  Using $location详解及示例代码
2016/09/02 Javascript
js数组与字符串常用方法总结
2017/01/13 Javascript
JavaScript的继承实现小结
2017/05/07 Javascript
Nodejs实现多房间简易聊天室功能
2017/06/20 NodeJs
详细介绍RxJS在Angular中的应用
2017/09/23 Javascript
JavaScript之创意时钟项目(实例讲解)
2017/10/23 Javascript
jQuery实现页码跳转式动态数据分页
2017/12/31 jQuery
vue-router3.0版本中 router.push 不能刷新页面的问题
2018/05/10 Javascript
实例详解ztree在vue项目中使用并且带有搜索功能
2018/08/24 Javascript
简化版的vue-router实现思路详解
2018/10/19 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
2020/06/02 Javascript
解决vue bus.$emit触发第一次$on监听不到问题
2020/07/28 Javascript
JavaScript实现下拉列表
2021/01/20 Javascript
Python常用模块用法分析
2014/09/08 Python
python ctypes库2_指定参数类型和返回类型详解
2019/11/19 Python
关于Python turtle库使用时坐标的确定方法
2020/03/19 Python
html5 canvas绘制网络字体的常用方法
2019/08/26 HTML / CSS
html5用video标签流式加载的实现
2020/05/20 HTML / CSS
教师自荐书
2013/10/08 职场文书
初中生物教学反思
2014/01/10 职场文书
高中运动会入场词
2014/02/14 职场文书
班主任对学生的评语
2014/04/26 职场文书
党员评议表自我评价范文
2014/10/20 职场文书
检讨书格式
2015/05/07 职场文书
于丹论语心得观后感
2015/06/15 职场文书
总经理致辞
2015/07/29 职场文书