MD5密文破解实验

47 篇文章 4 订阅
订阅专栏

实验目的与要求

1、 了解MD5加密的基本原理

2、 使用MD5Crack工具进行MD5解密

3、 使用网络资源对密文进行在线破解

4、 认真阅读并掌握本实验相关的知识点

5、上机实现实验所提到的工具和操作,得到实验结果,并填写实验报告

预备知识

MD5介绍

1991年,Rivest开发出技术上更为趋近成熟的md5算法。它在MD4的基础上增加了"安全-带子"(safety-belts)的概念。虽然MD5比MD4复杂度大一些,但却更为安全。这个算法很明显的由四个和MD4设计有少许不同的步骤组成。在MD5算法中,信息-摘要的大小和填充的必要条件与MD4完全相同。Den boer和Bosselaers曾发现MD5算法中的假冲突(pseudo-collisions),但除此之外就没有其他被发现的加密后结果了。

对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。

在MD5算法中,首先需要对信息进行填充,使其字节长度对512求余的结果等于448。因此,信息的字节长度(Bits Length)将被扩展至N*512+448,即N*64+56个字节(Bytes),N为一个正整数。填充的方法如下,在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后,在在这个结果后面附加一个以64位二进制表示的填充前信息长度。经过这两步的处理,现在的信息字节长度=N*512+448+64=(N+1)*512,即长度恰好是512的整数倍。这样做的原因是为满足后面处理中对信息长度的要求。

MD5中有四个32位被称作链接变量(Chaining Variable)的整数参数,他们分别为:A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210。

当设置好这四个链接变量后,就开始进入算法的四轮循环运算。循环的次数是信息中512位信息分组的数目。

将上面四个链接变量复制到另外四个变量中:A到a,B到b,C到c,D到d。

主循环有四轮(MD4只有三轮),每轮循环都很相似。第一轮进行16次操作。每次操作对a、b、c和d中的其中三个作一次非线性函数运算,然后将所得结果加上第四个变量,文本的一个子分组和一个常数。再将所得结果向右环移一个不定的数,并加上a、b、c或d中之一。最后用该结果取代a、b、c或d中之一。以下是每次操作中用到的四个非线性函数(每轮一个)。

   F(X,Y,Z) =(X&Y)|((~X)&Z)

   G(X,Y,Z) =(X&Z)|(Y&(~Z))

   H(X,Y,Z) =X^Y^Z

   I(X,Y,Z)=Y^(X|(~Z))

   (&是与,|是或,~是非,^是异或)

这四个函数的说明:如果X、Y和Z的对应位是独立和均匀的,那么结果的每一位也应是独立和均匀的。F是一个逐位运算的函数。即,如果X,那么Y,否则Z。函数H是逐位奇偶操作符。

MD5算法的应用

(1)一致性验证

MD5的典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。比如,在UNⅨ下有很多软件在下载的时候都有一个文件名相同,文件扩展名为.md5的文件,在这个文件中通常只有一行文本,大致结构如:

MD5 (tanajiya.tar.gz) = 0ca175b9c0f726a831d895e269332461

这就是tanajiya.tar.gz文件的数字签名。MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。为了让读者朋友对MD5的应用有个直观的认识,笔者以一个比方和一个实例来简要描述一下其工作过程:

大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为公安机关鉴别罪犯身份最值得信赖的方法;与之类似,MD5就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的“数字指纹”,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”都会发生变化。

我们常常在某些软件下载站点的某软件信息中看到其MD5值,它的作用就在于我们可以在下载该软件后,对下载回来的文件用专门的软件(如Windows MD5 Check等)做一次MD5校验,以确保我们获得的文件与该站点提供的文件为同一文件。利用MD5算法来进行文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等方面。

(2)数字证书

MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫 readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现(两个MD5值不相同)。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。

(3)安全访问认证

MD5还广泛用于操作系统的登陆认证上,如Unix、各类BSD系统登录密码、数字签名等诸多方面。如在UNⅨ系统中用户的密码是以MD5(或ash其它类似的算法)经H运算后存储在文件系统中。当用户登录的时候,系统把用户输入的密码进行MD5 Hash运算,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这可以避免用户的密码被具有系统管理员权限的用户知道。MD5将任意长度的“字节串”映射为一个128bit的大整数,并且是通过该128bit反推原始字符串是困难的,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。所以,要遇到了md5密码的问题,比较好的办法是:你可以用这个系统中的md5()函数重新设一个密码,如admin,把生成的一串密码的Hash值覆盖原来的Hash值就行了。

正是因为这个原因,现在被黑客使用最多的一种破译密码的方法就是一种被称为"跑字典"的方法。有两种方法得到字典,一种是日常搜集的用做密码的字符串表,另一种是用排列组合方法生成的,先用MD5程序计算出这些字典项的MD5值,然后再用目标的MD5值在这个字典中检索。我们假设密码的最大长度为8位字节(8 Bytes),同时密码只能是字母和数字,共26+26+10=62个字符,排列组合出的字典的项数则是P(62,1)+P(62,2)….+P(62,8),那也已经是一个很天文的数字了,存储这个字典就需要TB级的磁盘阵列,而且这种方法还有一个前提,就是能获得目标账户的密码MD5值的情况下才可以。这种加密技术被广泛的应用于UNⅨ系统中,这也是为什么UNⅨ系统比一般操作系统更为坚固一个重要原因。

MD5算法的优点

Van oorschot和Wiener曾经考虑过一个在散列中暴力搜寻冲突的函数(brute-force hash function),而且他们猜测一个被设计专门用来搜索MD5冲突的机器(这台机器在1994年的制造成本大约是一百万美元)可以平均每24天就找到一个冲突。但单从1991年到2001年这10年间,竟没有出现替代MD5算法的MD6或被叫做其他什么名字的新算法这一点,我们就可以看出这个瑕疵并没有太多的影响MD5的安全性。上面所有这些都不足以成为MD5的在实际应用中的问题。并且,由于MD5算法的使用不需要支付任何版权费用的,所以在一般的情况下(非绝密应用领域。但即便是应用在绝密领域内,MD5也不失为一种非常优秀的中间技术),MD5怎么都应该算得上是非常安全的了。

常见的破解技术

现在流行的破解方法,主要包括两个方面,一种是暴力破解,一种是在线的查询,暴力破解的方式又分为基于字典的、基于彩虹表的、基于字符集的等等,其原理是通过确定字符集的范围,将每个字符组合的MD5值计算出来,与需要破解的MD5密文进行比较,如果相匹配,则说明找到了答案,这种方式的优点是在知道字符集以及原文长度的时候,可以估测所需要的破解时间,缺点在于,需要对所确定的字典、彩虹表有较高的要求,倘若是没有任何信息的去匹配,需要的时间会非常长,尤其当原文是比较生僻或者没有确定规律的情况,可以视作不可破解。

在线的MD5值破解所采用的方法是,网站将大量的可能出现的原文的MD5值计算出来,存储在自己的服务器中,对外提供查询服务,当用户提交密文的时候,网站服务器寻找相匹配的明文,若数据库中包含词条数据,则表示破解成功,如果没有,则表示破解失败,从某个角度上来说,网站的在线破解方式也是的彩虹表破解的一种,区别在于其数据量比较大,而且将原文-MD5的组合提前计算结束,现在比较大的在线破解网站能够存储数十亿条数据,对于一般常见的明文来说容易得到。其缺点也比较明显,当数据库中没有匹配的数据时,则破解失败,只能求助于其他方式。

指定待攻击密文

MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法)。MD5的典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。

步骤1:本实验的目的是尝试破解以下MD5密文。

32位:

21232F297A57A5A743894A0E4A801FC3

FCEA920F7412B5DA7BE0CF42B8C93759

C33367701511B4F6020EC61DED352059

EF15D8EDD00A6960C9C16937CBF14212

1D71D84C6C159EE9E9E0585DD2AD6CCB

E99A18C428CB38D5F260853678922E03

16位:

28CB38D5F2608536

9371E9345734EF4E

FF0DADA1BF5BFA7C

DCF03BA266DC0885

EB2699BC4BEB41A9

使用MD5Crack工具对MD5进行破解

步骤1:打开MD5Crack暴力破解工具。

骤2:该工具可以选择单个MD5密文,或者多个密文,同时可以配置具体的破解选项。选择上述目标密文中的一项,填入输入框(虚拟机和本地机之间支持文字的复制粘贴,可以直接拷贝字符串到虚拟机当中),设置明文长度,进行字符设置:这里有3种方式可选择,分别是:使用字符集、使用字典、使用插件。

(1)使用字符集比较简单,如果你对数据有大概知情,比如已经知道是被加密的数据是数字,那你就可以只选择数字其他的都不选择,这样就可以大大减少解密的时间了,或如果知道被加密数据就是1-6之间的数字组成的,你就可以直接只选择自定义且在里输入1-6几个数字就可以了,破解会更快。

(2)使用字典:如果你已经有或者专门为破解加密数据而生成的字典,可以使用这项,比如数据是姓名和生日组成的,就可以先用字典生成器做好字典文件后,选择此项。

(3)插件方式相当于一个字典生成工具,不同的是它不将字符串保存到文件中,而是直接传给主程序,这样倒可以避免字典文件占大量的空间。

步骤3:单击“开始”按钮,开始破解过程,等待之后得到结果。(暴力破解需要时间,也需要运气,破解时间可能会比较长)对于MD5密文来说,没有简单的技巧以判断其所使用的字符集,只能凭借本身信息之外的提示进行破解。

步骤4:从网上下载字典文件,在本实验平台上的tools文件夹下有一个现成的字典,对于疯狂字典进行设置,包括密码长度、生成方式、以及字典保存路径,本实验中密码长度设置为5-7,生成方式为随机生成,随机组合为小写字母,字典保存路径为默认路径,设置完成后,点击生成,进行字典生成。

 

 

步骤5:打开MD5Crack软件,如图所示,输入要破解的密文,加载字典,点击开始,进行密文破解,结果如图所示,可见使用字典会在很大程度上提高破解速度

另外我们可以使用工具提供实验样本

步骤1:目前有很多工具可以进行字符串的MD5加密转换,这里使用MD5 Tool工具进行加密。选择几个字符串,进行MD5加密。

 使用MD5 Tool进行加密

步骤2:  使用MD5 Tool对生日进行加密,如图所示,对‘871213’进行加密,打开MD5Crack,如图,字符设置选择使用插件,选择Birthday插件,将MD5Tool对于‘871213’加密得到的32位密码输入到MD5Crack进行,进行解密,解密结果如图所示。

 MD5Tool对生日进行加密

使用在线工具进行破解(需要网络连接)

对于MD5破解来说,最高效的方法是使用已有的数据库,进行字典破解、彩虹表破解。目前在网上存在很多提供MD5破解的网站,大多利用的是数据库存储已有匹配的方法。

步骤1:打开浏览器(存在网络连接的条件下),访问www.md5.rednoize.com

 

步骤2:在对话框中输入想要解密的md5密文,点击搜索按钮 

 

 步骤3:其他类似的网站还有很多,可以尝试访问www.xmd5.org等进行查询。

 

 

由此次实验我们可以了解到使用本地工具例如MD5Crack进行破解,需要确定正确的字符集以及合适的破解长度,除了一些比较简单的情况,一般需要的时间可能会比较长。在线查询的方式,是在所访问的网站的数据库中查找结果,对于一般有规律的原文来说,一般可以破解。 

MD5CrackMD5暴力破解
06-11
MD5CrackMD5暴力破解,穷举法破解,可以设置多线程
暴力破解MD5密码[单线程]
R4bbit
04-05 1万+
原理: 加密字典文件中的明文,比对输入的md5密文,如果相等那么这个明文就是密码 源码: #!/usr/bin/python3 import sys import hashlib counter = 1 #记录密码个数 pass_in = input("Please enter the MD5 Hash:"); pwfile = input("please enter the passw...
MD5加密是什么?为什么不可解密
dzqxwzoe的博客
02-29 1046
MD5消息摘要算法(MD5 Message-DigestAlgorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
60万条MD5密文.zip
10-06
适合解不开的MD5
MD5破解工具MD5Cracksp V3.0
07-21
MD5破解工具MD5Cracksp V3.0
MD5+Salt安全浅析 分类: 软件插件学习 ...
weixin_33807284的博客
05-08 2700
来源:http://www.server110.com/sec_news/201309/995.html 这段时间诸多爆库的新闻,里面有许多饶有趣味的事情。那些用简单密码,或者一个密码走天下的笑话就不说了,咱说点有内涵的。(这篇文章是给IT界的人看的,如果你看不懂,我会准备一个简单的“如何辨别密码安全糟糕的网站”的方法给你,另文描述。)爆库之后哀鸿遍野,一大堆人都在里面嗷嗷乱...
怎么解密MD5,常见的MD5解密方法,一看就会
ITduo的博客
02-15 3万+
MD5是一种被广泛使用的密码散列函数,曾在计算机安全领域使用很广泛,但是也因为它容易发生碰撞,而被人们认为不安全。那么,MD5应用场景有哪些,我们怎么解密MD5,本文将带大家了解MD5的相关知识,以及比较简单的MD5解密方法。
MD5加密解密
weixin_46654971的博客
03-30 3280
要用statement类的executeQuery()方法来下达select指令以查询数据库,executeQuery()方法会把数据库响应的查询结果存放在。Java中利用MessageDigest获取字符串或文件MD5,MessageDigest是Java自带的类。类对象中供我们使用。即语句:ResultSet rs=s.executeQuery(sql);1. 任何时候,都需要对密码进行加密。2.executeQuery()方法。
专家教你简单又轻松的MD5解密方法,一看就会
热门推荐
m0_69916115的博客
06-20 8万+
大家都知道MD5是消息摘要算法,它是不可逆的。因此,要想解密只能通过暴利解密的方式得到MD5加密前的字符串。下面本文将介绍简单又轻松的MD5解密方法,一看就会。
分享几个好用的在线破解md5的网站
cheng1a的博客
06-25 1万+
分享国内常用的几个免费MD5在线解密网站,一个不行就试试下一个;简洁的页面让人看着很舒服。
MD5摘要算法的几种解密方法,分享md5免费解密网站
m0_69916115的博客
06-27 1万+
在一个md5解密交流群看到有人讨论MD5算法解密,消息有上百条,但是具体怎么解密却没人讨论。所以,今天就这个话题浅谈一下MD5摘要算法的几种解密方法,以及分享使用MD5免费解密网站如何进行md5加密解密,大家可要轻点喷。...
MD5破解MD5Crack4
04-18
MD5破解MD5Crack4,里面带汉化说明的。
50万条收费MD5密文破解
08-07
收集了50万条收费的MD5密文破解,里面有50万条
60万条收费MD5密文.zip
07-15
60万条收费MD5密文.zip
60万条收费MD5密文.rar
10-30
部分md5密文,仅供参考
电力系统调度过程连续潮流matlab代码.zip
04-26
1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
【基于Java+Springboot的毕业设计】付费问答系统(源码+演示视频+说明).rar
04-26
【基于Java+Springboot的毕业设计】付费问答系统(源码+演示视频+说明).rar 【项目技术】 开发语言:Java 框架:Spingboot+vue 架构:B/S 数据库:mysql 【演示视频-编号:330】 https://pan.quark.cn/s/8dea014f4d36 【实现功能】 付费问答系统通过MySQL数据库与Spring Boot框架进行开发,付费问答系统能够实现新闻类型管理,问题帖子管理,付费记录管理,新闻信息管理,用户管理,轮播图管理等功能。
关于旁路电容和耦合电容-(详细说明)
最新发布
04-26
关于旁路电容和耦合电容-(详细说明)
Git 与 Simulink 测试:远程测试的最佳实践.zip
04-26
1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
MD5的计算和破解代码
06-08
以下是Python中使用 hashlib 库计算MD5值的代码示例: ```python import hashlib message = "hello, world!".encode("utf-8") md5_hash = hashlib.md5(message).hexdigest() print(md5_hash) ``` 以上代码将字符串 "hello, world!" 编码为 utf-8 格式的字节流,然后使用 hashlib 库中的 md5() 函数计算其MD5哈希值,并使用 hexdigest() 函数将其转换为十六进制字符串输出。 以下是Python中使用 hashlib 库进行暴力破解MD5哈希值的代码示例: ```python import hashlib target_hash = "5eb63bbbe01eeed093cb22bb8f5acdc3" # 目标哈希值 password_file = open("passwords.txt") # 密码字典文件 for password in password_file: password = password.strip() md5_hash = hashlib.md5(password.encode("utf-8")).hexdigest() if md5_hash == target_hash: print(f"Password found: {password}") break password_file.close() ``` 以上代码读取一个包含可能的密码的字典文件,然后逐个尝试计算其MD5哈希值,直到找到与目标哈希值相同的密码为止。如果找到了密码,则输出其值并退出循环。注意,这种暴力破解方式需要非常长时间,因此通常不是实际攻击中使用的方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • Wireshark抓包实验 9893
  • 如何把img格式转换成vmdk格式 9667
  • MD5密文破解实验 5382
  • TCPDump工具使用与UDP数据包分析 4231
  • 科来网络分析系统与数据包分析 4150

分类专栏

  • 笔记 47篇
  • 防火墙技术与应用 4篇
  • SQL 2篇
  • Back Track 5 3篇
  • 网络协议 14篇

最新评论

  • 流光安全测试

    熊扑奶团o: 为什么浏览器打不开生成的报告嘞表情包

  • 如何把img格式转换成vmdk格式

    xyjincan: qemu-img convert usb.img -f raw -O vmdk out.vmdk

最新文章

  • iptables基本实验-表与链
  • SQL注入笔记(二)
  • 主机系统识别
2022年8篇
2021年48篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

腿没发霉的霉腿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司吉安网络广告推广推荐太原seo价格昌吉网站定制公司达州网页制作公司南联百度网站优化哪家好铜仁企业网站建设丽水百姓网标王价格张家口SEO按天扣费推荐伊犁关键词排名霍邱网站搭建价格抚顺网站设计模板洛阳网页设计哪家好张掖SEO按天收费多少钱广元建设网站报价绍兴SEO按效果付费推荐松岗企业网站建设价格郴州网站制作报价海口网站改版价格自贡网页设计推荐来宾阿里店铺托管多少钱陇南网络广告推广报价十堰网站建设报价南宁百度爱采购长春百姓网标王哪家好贺州网络营销多少钱江门网站推广报价昆明百姓网标王价格潍坊网站推广系统推荐驻马店百度标王周口网站制作设计多少钱歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化