`
中南大宝
  • 浏览: 34680 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

MD5暴力碰撞&&对王玉斌讲解PPT的总结

阅读更多

        王玉斌者,蓝杰1020组成员也。征战ACM亚洲赛,获金奖,享誉中南信息院。余听其讲PPT两次,由浅入深,通俗易懂,颇有感触,遂总结一下,发到博客中来,与诸君共勉。

        最近的一次PPT讲解是对MD5暴力碰撞的分析,因为需要处理大量的数据,蓝杰组建Hadoop集群对简单的密码进行蛮力破解试验。他的讲解是基于这样的一个背景下而来的。

       
   
 
       首先玉斌对我们经常遇到的一个现象,在QQ中传送文件时这一现象进行了互动,为什么我们在传一个大的文件,瞬间就传上去了。讨论的大概结果是在腾讯的服务器中存了这么一个文件,在传输的过程中服务器会进行检测,服务器中是否有这么一个文件存在,而且在互动中,我中枪了。当玉斌问到是否与文件名有关时,就回答了一个有关,于是他改了个文件名,然后也是很快就传过去了(这里附一个:传输的文件是JDK,这东东腾讯服务器中肯定存在了)。于是问题抛出,腾讯是如何做的呢?

 
   
 
        而后,使用了现实中的两个Boy争抢一个Girl的例子,对网络传输中的安全性问题又抛出了疑问?那这两个问题我们可以采用什么样的方式解决呢?于是有了数字摘要这一概念的出炉,这张PPT中将数字摘要类比为一个函数的功能。MD5就是这样一套算法,你给我一个文件,我给你映射成为一个128位的东东,这样你就可以直接使用这个东西来进行校验,刚刚抛出的两个问题也可以使用这样的方法解决(不过腾讯是不是这样做的我们不知道~~)

 
   

 

       随后怎么去构建这个MD5映射,于是玉斌敲了几行代码进去,简单的测试了一下,下面的代码是后来我写的,跟他当时写的出入不大,代码如下:
 

package MD5Test;

import java.security.NoSuchAlgorithmException;

/**
 * Message Digest Algorithm MD5(消息摘要算法第五版) 测试类
 * @author 赵广超
 */
public class MD5Test {

	public static void main(String[] args) {
		java.security.MessageDigest md5;
		try {
			md5 = java.security.MessageDigest.getInstance("MD5");
		
		String msg = "123456";
		byte digest[] = md5.digest(msg.getBytes());
		
		//这里要将byte转化为16进制数
		for(int t : digest) {
			String hex = Integer.toHexString(t&0xff);
			if(hex.length() ==1 ){
				System.out.print("0"+hex);
			}else{
				System.out.print(hex);
			}
		}
		
		System.out.println();//换个行
		
		//再来一种将byte转化为16进制显示的方法
		for(int t:digest){
			//或者用下面的方法
			//这里t是整型,用0xff与后变成只剩后两位的byte了
			System.out.print(String.format("%02x", t & 0xff));
		}
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		}
		
	}

}

 

 控制台输出的结果是(代码中写了两种输出的方式,所以下面有两行):

       e10adc3949ba59abbe56e057f20f883e
       e10adc3949ba59abbe56e057f20f883e

 网络上的MD5加密/解密网站给出的结果:
 

 

       然后大家可能会有疑惑,网络上那么多的数据,怎能保证每一个不同的文件都有不同的MD5值呢?然后玉斌用了淘宝图片的例子,结合数学中比较大小时常用的放大缩小的方法进行了解释,PPT如下:


   
    
 

       如此下来,说明了MD5值不是不会遇到重复的情况,只是这个概率小的很多很多,远远小于我们买彩票中奖的概率,这样我们用它起来也就没有那么多的担心了。然后玉斌又提出了一个不可逆和不可解的问题出来,因为这直接关系到我们要解决的暴力破解的问题。

 

  

       

       如PPT中所述,枚举部分MD5值对应的密码,我们所需要处理的数据需要50个G并且需要超强的计算能力,所以为“蓝云”小组的成立和Hadoop集群的搭建做好了铺垫。

 
   
 

        经过他这么一讲,我很快就明白了MD5是个啥东东,云计算平台可以做些什么东东,听完其讲解,三万六千个毛孔,通体透着明白后的“爽”。这次讲解之中,我们可以很容易的看出他准备的很充分,讲的很投入,也讲的很透彻。现在就做一个小小的总结,希望自己也能达到他讲PPT时的那种境界。

 

        如果要我来分析make PPT时的设计思路,首先得明白讲的是什么?为什么要讲这个(基于什么的大环境)?怎样组织思路去讲?那么我得看到要讲的这个东西解决了现实中的什么问题,人是活在现实中的,往往与自身密切相关的东西会更加引起注意,以身边发生的案例来进行说明可以有效的吸引听众,比如现实中我们使用QQ聊天过程中经常需要传数据,逛淘宝时看过的无数图片和现阶段听众(学生)最关注的男女朋友话题。从现实中提升起来,那么这个MD5的本质是什么?消息摘要。是如何实现的?这就要讲求知识屏蔽了,如果要把MD5算法是怎么实现的讲出来,那估计需要花大力气去研究,而且还不一定能够讲清楚。而这里我们也不需要做这一步,在这里我们只需要知道怎么用就好了(就好像我用PS修改图片,并不需要知道PS软件是如何实现的),于是java中如何实现的代码到了PPT上。在深入思考后发现这个东西有个问题,即不同文件的MD5值是否是不同的呢?于是带着验证的思路,搜了一些资料,利用淘宝图片的例子和中彩票很难的例子,说明发生的几率很小,过多的担心是没有必要的。最后结合大环境,我们要进行对MD5简单密码的暴力破解,需要大量的计算能力,于是需要将机器互联。

 

以下是我对讲解PPT的思考与总结:

1. PPT的设计思路要条理,连贯性要强。

           在什么样的情况下会提出所讲内容的问题;

           所讲内容的实质是什么;

           怎样去解决问题;

           这样的解决方案是否会有不合理性,如何验证;

           还可以解决其他的什么问题。

2. 对某一难以理解的问题,不妨用现实中的例子来进行阐释。

3. 需要注意知识屏蔽。

4. PPT的画面感要好,深蓝渐变色(乔布斯使用过的),黑体、微软雅黑很不错,最好一张PPT的色调不超三种(简约美)。

5. 讲解前的准备工作很重要。

6. 讲解的语气、神态等等很重要。

 

       就分析到这里吧,再有思考了写!想到了一个词“象征性结束”,技术这东西,对一个知识点的理解,完全透彻的搞明白不太容易。“结束”这个词用在技术学习上不太适用。

       感谢王玉斌同学的讲解和允许我在博客中直接引用他的名字。

——2013年1月26日凌晨记于刘洋寝室

  • 大小: 18.7 KB
  • 大小: 104.6 KB
  • 大小: 101.5 KB
  • 大小: 33.4 KB
  • 大小: 38 KB
  • 大小: 34.7 KB
  • 大小: 86.8 KB
  • 大小: 75 KB
  • 大小: 92.1 KB
  • 大小: 69.4 KB
  • 大小: 79.9 KB
  • 大小: 23.2 KB
  • 大小: 52 KB
  • 大小: 25.7 KB
  • 大小: 64.7 KB
分享到:
评论
3 楼 rtttyu23 2013-01-29  
我原以为此文对MD5有更好的破解方法呢,原来是对MD5加密算法及暴力碰撞的介绍。
2 楼 中南大宝 2013-01-29  
笑揽清溪月 写道
不错

谢谢!
1 楼 笑揽清溪月 2013-01-28  
不错

相关推荐

    PROFINET TPS-1 Development Toolkit

    PROFINET TPS-1 Development Toolkit IEC 61131 Control If you are interested in IEC 61131 Control or IEC 61508 Safety, please contact us. IEC 61508 Safety If you are interested in IEC 61131 Control or ...

    基于卷积神经网络的微博文本情感分析_参考文献与关键词分析报告1

    5. 王玉斌探讨了数据挖掘技术在辅助决策中的应用,强调了数据驱动决策的重要性。 6. 王庆香利用小波分析进行纹理分析和FPC金面缺陷检测,展示了小波分析在图像处理的应用。 7. 杜艺的改进神经网络方法在热轧厚度控制...

    物联网技术在煤矿信息化中的应用.pdf

    因此,相关研究和实践,如张先胜、王玉斌、杨毅等人的工作,都在探索如何更好地适应和解决这些问题,以实现物联网技术在煤矿信息化建设中的有效落地。 综上所述,物联网技术在煤矿信息化中的应用是多方面的,包括...

    小红薯电商实操课小红书开店实操必学课.mp4

    小红薯电商实操课小红书开店实操必学课.mp4

    AI图像处理工具包-一键抠图、背景切换、旧照片修复、人像漫画化、视频卡通化(Python+OpenCV+Dlib+TensorFlow).zip

    AI图像处理工具包-一键抠图、背景切换、旧照片修复、人像漫画化、视频卡通化(Python+OpenCV+Dlib+TensorFlow).zip [资源说明] 1、该项目是团队成员近期最新开发,代码完整,资料齐全,含设计文档等 2、上传的项目源码经过严格测试,功能完善且能正常运行,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的高校学生、教师、科研工作者、行业从业者下载使用,可借鉴学习,也可直接作为毕业设计、课程设计、作业、项目初期立项演示等,也适合小白学习进阶,遇到问题不懂就问,欢迎交流。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 5、不懂配置和运行,可远程教学 欢迎下载,学习使用!

    基于java的新能源充电系统设计与实现.docx

    基于java的新能源充电系统设计与实现.docx

    吸波材料建模单元周期仿真模拟,参数优化,计算反射损耗,极化角,入射角,等效阻抗等

    吸波材料建模单元周期仿真模拟,参数优化,计算反射损耗,极化角,入射角,等效阻抗等

    AGV调度系统的仿真平台(含源码+项目说明+实验结果分析).zip

    AGV调度系统的仿真平台(含源码+项目说明+实验结果分析).zip [资源说明] 1、该项目是团队成员近期最新开发,代码完整,资料齐全,含设计文档等 2、上传的项目源码经过严格测试,功能完善且能正常运行,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的高校学生、教师、科研工作者、行业从业者下载使用,可借鉴学习,也可直接作为毕业设计、课程设计、作业、项目初期立项演示等,也适合小白学习进阶,遇到问题不懂就问,欢迎交流。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 5、不懂配置和运行,可远程教学 欢迎下载,学习使用!

    【本体】Internet Download Manager v6.42.26.zip

    【本体】Internet Download Manager v6.42.26.zip

    NLP中文垃圾短信分类系统源码+设计全部资料+文档报告(自然语言处理课设).zip

    NLP中文垃圾短信分类系统源码+设计全部资料+文档报告(自然语言处理课设).zip [资源说明] 1、该项目是团队成员近期最新开发,代码完整,资料齐全,含设计文档等 2、上传的项目源码经过严格测试,功能完善且能正常运行,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的高校学生、教师、科研工作者、行业从业者下载使用,可借鉴学习,也可直接作为毕业设计、课程设计、作业、项目初期立项演示等,也适合小白学习进阶,遇到问题不懂就问,欢迎交流。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 5、不懂配置和运行,可远程教学 欢迎下载,学习使用!

    Python大作业封面.doc

    Python大作业封面.doc

    基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)

    基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业),个人经导师指导并认可通过的毕业设计项目,评审分98分,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!主要针对计算机相关专业的正在做毕业设计的学生和需要项目实战练习的学习者,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)基于Android Studio开发的安卓的记事本app项目源码(高分期末大作业)基于Android Studio开

    操作系统课后习题参考答案

    操作系统课后题参考答案

    三维几何图形绘制工具软件-几何图霸

    几何图霸软件是一个非常强大的三维几何图形绘制工具,可以根据约束条件绘制标准示意图,写相关技术类文章需要绘图时很适用。

    《写给大众的健康饮食指南》.mp4

    《写给大众的健康饮食指南》.mp4

    智能相册Piktures v2.19 build 815 for 高级版.mp4

    智能相册Piktures v2.19 build 815 for 高级版.mp4

    建行开养老金必中58元微信立减金亲测.mp4

    建行开养老金必中58元微信立减金亲测.mp4

    Converter视频音频转换器v2.2.5.2解锁VIP版.mp4

    Converter视频音频转换器v2.2.5.2解锁VIP版.mp4

    车来了v4.59.0高级版 精准实时公交地铁神器.mp4

    车来了v4.59.0高级版 精准实时公交地铁神器.mp4

Global site tag (gtag.js) - Google Analytics