基于python的MD5脚本
摘要
鉴于网上的各大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脚本的更多相关文章
- 基于Python的AT命令测试脚本
对于各种有线&无线调制解调器(modem)产品来说,AT命令是事实上的标准接口之一,在工业界被广泛使用. 我开发了一套基于Python的AT命令测试脚本,源代码可在github上获取: htt ...
- 基于python深度学习的apk风险预测脚本
基于python深度学习的apk风险预测脚本 为了有效判断安卓apk有无恶意操作,利用python脚本,通过解包apk文件,对其中xml文件进行特征提取,通过机器学习构建模型,预测位置的apk包是否有 ...
- 一行导出所有任意微软SQL server数据脚本-基于Python的微软官方mssql-scripter工具使用全讲解
文章标题: 一行导出所有任意微软SQL serer数据脚本-基于Python的微软官方mssql-scripter工具使用全讲解 关键字 : mssql-scripter,SQL Server 文章分 ...
- 关于《selenium2自动测试实战--基于Python语言》
关于本书的类型: 首先在我看来技术书分为两类,一类是“思想”,一类是“操作手册”. 对于思想类的书,一般作者有很多年经验积累,这类书需要细读与品位.高手读了会深有体会,豁然开朗.新手读了不止所云,甚至 ...
- 从Theano到Lasagne:基于Python的深度学习的框架和库
从Theano到Lasagne:基于Python的深度学习的框架和库 摘要:最近,深度神经网络以“Deep Dreams”形式在网站中如雨后春笋般出现,或是像谷歌研究原创论文中描述的那样:Incept ...
- 「python」: arp脚本的两种方法
「python」: arp脚本的两种方法 第一种是使用arping工具: #!/usr/bin/env python import subprocess import sys import re de ...
- 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)
目录 前言 第1章 安装 第2章 程序的基本结构 第3章 模板 第4章 Web表单 第5章 数据库 第6章 电子邮件 第7章 大型程序的结构 前言 学习Python也有一个半月时间了,学到现在感觉 ...
- Android Native App自动化测试实战讲解(上)(基于python)
1.Native App自动化测试及Appuim框架介绍 android平台提供了一个基于java语言的测试框架uiautomator,它一个测试的Java库,包含了创建UI测试的各种API和执行自动 ...
- 基于Python的Web应用开发实践总结
基于Python的Web应用开发学习总结 项目地址 本次学习采用的是Flask框架.根据教程开发个人博客系统.博客界面如图所示. 整个学习过程收获很多,以下是学习总结. 1.virtualenv ...
随机推荐
- C++类中的常成员和静态成员
常变量.常对象.常引用.指向常对象或常变量的指针等在定义时都使用了const关键字,这是C++语言引入的一种数据保护机制,称为const数据保护机制.例如通过const关键字主动地将被调函数形参进行限 ...
- C++类对象作为类成员
//当其他类的对象作为本类的成员 构造的时候先去构造类的对象 再去构造自身 //析构函数: 先进后出 先去构造Phone 再去构造Person Person先退出 Phone后退出 //析构与构造顺序 ...
- 2536-springsecurity系列--关于session管理1
版本信息 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring ...
- 高通cDSP简单编程例子(实现查询高通cDSP使用率、签名),RK3588 npu使用率查询
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- 「SDOI2016」征途 题解
「SDOI2016」征途 先浅浅复制一个方差 显然dp,可以搞一个 \(dp[i][j]\)为前i段路程j天到达的最小方差 开始暴力转移 \(dp[i][j]=min(dp[k][j-1]+?)(j- ...
- 十分钟教会你如何使用VitePress搭建及部署个人博客站点
使用VitePress可以让我们快速搭建一个静态博客网站,这篇文章将带领大家搭建一个基于VitePress的静态博客网站并且部署到GitHub Pages(github提供的静态网页服务) 快速上手 ...
- Luogu2798 爆弹虐场 (二分,Kruskal)
二分答案,判定连通性 #include <iostream> #include <cstdio> #include <cstring> #include <a ...
- {版本发布公告}HMS Core 6.6.0来啦
分析服务 ◆ 留存分析支持¬将流失用户存为受众,开发者通过对流失人群的分层以及多维分析,在制定相关用户召回策略时将更有针对性: ◆ 原"受众分析"更名为"人群洞察&quo ...
- HDU4372 Count the Buildings (+题解:斯特林数)
题面 (笔者翻译) There are N buildings standing in a straight line in the City, numbered from 1 to N. The h ...
- 钓鱼利用-CVE-2018-20250
钓鱼利用-CVE-2018-20250 漏洞影响版本 WinRAR < 5.70 Beta 1 Bandizip< = 6.2.0.0 好压(2345压缩) < = 5.9.8.10 ...