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 相关文章推荐
github配置使用指南
Nov 18 Python
Flask框架的学习指南之开发环境搭建
Nov 20 Python
python自定义异常实例详解
Jul 11 Python
对python csv模块配置分隔符和引用符详解
Dec 12 Python
Python实现使用request模块下载图片demo示例
May 24 Python
python处理大日志文件
Jul 23 Python
详解Python是如何实现issubclass的
Jul 24 Python
利用python实现短信和电话提醒功能的例子
Aug 08 Python
对pytorch中的梯度更新方法详解
Aug 20 Python
Python实现一个简单的递归下降分析器
Aug 01 Python
tensorflow2.0教程之Keras快速入门
Feb 20 Python
使用python求解迷宫问题的三种实现方法
Mar 17 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 4.2书写安全的脚本
2006/10/09 PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
2014/06/06 PHP
PHP错误Warning: Cannot modify header information - headers already sent by解决方法
2014/09/27 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
2019/01/10 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
2020/05/26 PHP
js和jquery对dom节点的操作(创建/追加)
2013/04/21 Javascript
javascript获取dom的下一个节点方法
2014/09/05 Javascript
js闭包实现按秒计数
2015/04/23 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
AngularJS 中文API参考手册
2016/07/28 Javascript
JavaScript  event对象整理及详细介绍
2016/10/10 Javascript
js实现表单提交后不重新刷新当前页面
2016/11/30 Javascript
几种tab切换详解
2017/02/03 Javascript
React Native模块之Permissions权限申请的实例相机
2017/09/28 Javascript
Easyui 去除jquery-easui tab页div自带滚动条的方法
2019/05/10 jQuery
Vue+webpack实现懒加载过程解析
2020/02/17 Javascript
javascript设计模式 ? 备忘录模式原理与用法实例分析
2020/04/21 Javascript
python获得图片base64编码示例
2014/01/16 Python
Python 通过pip安装Django详细介绍
2017/04/28 Python
scrapy爬虫完整实例
2018/01/25 Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
2018/03/19 Python
解析python的局部变量和全局变量
2019/08/15 Python
PyTorch的Optimizer训练工具的实现
2019/08/18 Python
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
Python将列表中的元素转化为数字并排序的示例
2019/12/25 Python
python matplotlib 绘图 和 dpi对应关系详解
2020/03/14 Python
如何验证python安装成功
2020/07/06 Python
ANINE BING官方网站:奢华的衣橱基本款和时尚永恒的单品
2019/11/26 全球购物
汉语专业应届生求职信
2013/10/01 职场文书
物流专业大学的自我评价
2014/01/11 职场文书
党支部对照检查材料
2014/08/25 职场文书
作风建设年活动总结
2014/08/27 职场文书
个人纪律作风整改措施思想汇报
2014/10/12 职场文书
地心历险记观后感
2015/06/15 职场文书
贷款收入证明格式
2015/06/24 职场文书
MySQL中的全表扫描和索引树扫描
2022/05/15 MySQL