摘要

鉴于网上的各大MD5爆破网站,当网络差时访问速度慢,至此小弟写了个基于python的MD5爆破脚本,欢迎各位师傅在评论区留下您们宝贵的意见。


开发思路

1、通过 string模块 自动生成字典;

2、使用permutations()函数,对字典进行全排列;

3、使用 md5模块 对全排列的字典进行转换;

4、使用了多线程,分别对5~18位字符串进行md5碰撞,以防止时间太长(虽然现在也要很久)。


md5碰撞函数

 1     def md5_poj(self, md5_value, k):
2 if len(md5_value) != 32:
3 print("error")
4 return
5 md5_value = md5_value.lower()
6 # permutations() 全排列
7 for item in permutations(all_letters, k):
8 item = "".join(item)
9 if md5(item.encode()).hexdigest() == md5_value:
10 print('\n success: ' + md5_value + ' ==> ' + item)
11 self.__mdfive = 1

其中 if len(md5_value) != 32 判断所输入的md5是否为32位的


主函数

 1     def main(self):
2 NT_md5 = input("请填写MD5:")
3 start_time = time()
4 t_list = []
5 print("正在查询...")
6 # 添加线程
7 t_first = threading.Thread(target=self.md5_first, args=(NT_md5,))
8 t_first.daemon = 1
9 t_first.start()
10 for k in range(5, 18):
11 t = Process(target=self.md5_poj, args=(NT_md5, k))
12 # t = threading.Thread(target=self.md5_poj, args=(NT_md5, k))
13 t.daemon = 1 # 守护程序
14 t_list.append(t)
15 # 启动所有线程
16 for i in t_list:
17 i.start()
18 # 当 __mdfive == 1 时结束所有线程
19 while 1:
20 if self.__mdfive:
21 break
22 print("\n查询结束!")
23 print('使用了 %f 秒'%(time() - start_time))

源码我放在github上了,可以点击右上角进入

备注

如需转载,请联系作者:spmonkey,联系方式可通过博客园的联系,亦可发至作者邮箱:spm0nkey@163.com

基于python的MD5脚本的更多相关文章

  1. 基于Python的AT命令测试脚本

    对于各种有线&无线调制解调器(modem)产品来说,AT命令是事实上的标准接口之一,在工业界被广泛使用. 我开发了一套基于Python的AT命令测试脚本,源代码可在github上获取: htt ...

  2. 基于python深度学习的apk风险预测脚本

    基于python深度学习的apk风险预测脚本 为了有效判断安卓apk有无恶意操作,利用python脚本,通过解包apk文件,对其中xml文件进行特征提取,通过机器学习构建模型,预测位置的apk包是否有 ...

  3. 一行导出所有任意微软SQL server数据脚本-基于Python的微软官方mssql-scripter工具使用全讲解

    文章标题: 一行导出所有任意微软SQL serer数据脚本-基于Python的微软官方mssql-scripter工具使用全讲解 关键字 : mssql-scripter,SQL Server 文章分 ...

  4. 关于《selenium2自动测试实战--基于Python语言》

    关于本书的类型: 首先在我看来技术书分为两类,一类是“思想”,一类是“操作手册”. 对于思想类的书,一般作者有很多年经验积累,这类书需要细读与品位.高手读了会深有体会,豁然开朗.新手读了不止所云,甚至 ...

  5. 从Theano到Lasagne:基于Python的深度学习的框架和库

    从Theano到Lasagne:基于Python的深度学习的框架和库 摘要:最近,深度神经网络以“Deep Dreams”形式在网站中如雨后春笋般出现,或是像谷歌研究原创论文中描述的那样:Incept ...

  6. 「python」: arp脚本的两种方法

    「python」: arp脚本的两种方法 第一种是使用arping工具: #!/usr/bin/env python import subprocess import sys import re de ...

  7. 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)

    目录 前言 第1章 安装 第2章 程序的基本结构 第3章 模板 第4章 Web表单 第5章 数据库 第6章 电子邮件 第7章 大型程序的结构   前言 学习Python也有一个半月时间了,学到现在感觉 ...

  8. Android Native App自动化测试实战讲解(上)(基于python)

    1.Native App自动化测试及Appuim框架介绍 android平台提供了一个基于java语言的测试框架uiautomator,它一个测试的Java库,包含了创建UI测试的各种API和执行自动 ...

  9. 基于Python的Web应用开发实践总结

    基于Python的Web应用开发学习总结 项目地址   本次学习采用的是Flask框架.根据教程开发个人博客系统.博客界面如图所示. 整个学习过程收获很多,以下是学习总结. 1.virtualenv ...

随机推荐

  1. 5-10 Quartz 任务调度

    Quartz 什么是Quartz quartz:石英钟的意思 是一个当今市面上流行的高效的任务调度管理工具 由OpenSymphony开源组织开发 Symphony:交响乐 是java编写的,我们使用 ...

  2. Dubbo源码(三) - 服务导出(生产者)

    前言 本文基于Dubbo2.6.x版本,中文注释版源码已上传github:xiaoguyu/dubbo 在了解了Dubbo SPI后,我们来了解下Dubbo服务导出的过程. Dubbo的配置是通过Du ...

  3. 基于mpvue的框架开发微信小程序(搭建环境)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_103 美团很早就开源了mpvue这个项目,如此看来,美团可不仅仅是一家团购网站,真正的技术驱动型企业,使得我们多了一种用来开发微信 ...

  4. vue-resource && axios

    1 # axios 2 # 1.安装:npm i axios 3 # 2.使用: 4 import axios from 'axios' 5 axios.get(URL).then(response= ...

  5. 小白之Python基础(一)

    一.数字类型: 1.整形 十进制:默认为十进制:(如:99,100.......) 十六进制: 0x,0X开头的表示16进制数 二进制:0b,0B开头的表示2进制数 八进制: 0o,0O开头的表示8进 ...

  6. 如何基于WPF写一款数据库文档管理工具(二)

    系列目录 基于WPF重复造轮子,写一款数据库文档管理工具(一) 本篇重点 上次发表了基于WPF重复造轮子,写一款数据库文档管理工具(一) 得到不少人支持,文章一度上到了博客园推荐表首页,看来大家对这个 ...

  7. 学习nginx的一点记录

    一.nginx定义 Nginx是一款轻量级的.高性能的,具备HTTP.反向代理.负载均衡的web服务器,同时还提供IMAP/POP3/SMTP服务,其特点是占用内存少,并发能力强. 二.nginx基本 ...

  8. BMP位图之4位位图(二)

    起始结构 typedef struct tagBITMAPFILEHEADER { WORD bfType; //类型名,字符串"BM", DWORD bfSize; //文件大小 ...

  9. react环境搭建及文件配置

    webpack简介 构建工具(基于Nodejs)node(v16)前端工程化. 环境搭建 创建一个空的package.json npm init webpack核心包(提供了API,插件) npm i ...

  10. LuoguP3690 【模板】Link Cut Tree (LCT)

    勉强算是结了个大坑吧或者才开始 #include <cstdio> #include <iostream> #include <cstring> #include ...