代码改变世界

MD5 初探。

  沐海  阅读(362)  评论(0编辑  收藏  举报

MD5构造原理

 

 

MD5码原理及应用(有些是从网上整理的)

MD5在计算时要用到文件的所有字节。

释义  MD5中的MD代表Message Digest,就是信息摘要的意思,不过这个信息摘要不是信息内容的缩写,而是根据公开的MD5算法对原信息进行数学变换后得到的一个128位(bit)的特征码。

特性

  这个特征码有如下特性,首先它不可逆,例如我有一段秘密的文字如:"My Secret Words",经算法变换后得到MD5码(b9944e9367d2e40dd1f0c4040d4daaf7),把这个码告诉其他人,他们根据这个MD5码是没有系统的方法可以知道你原来的文字是什么的。

离散性

  其次,这个码具有高度的离散性,也就是说,原信息的一点点变化就会导致MD5的巨大变化,例如"ABC" MD5(902fbdd2b1df0c4f70b4a5d23525e932)和"ABC "(多了一空格)MD5(12c774468f981a9487c30773d8093561)差别非常大,而且之间没有任何关系,也就是说产生的MD5码是不可预测的。

码位性

  最后由于这个码有128位那么长,所以任意信息之间具有相同MD5码的可能性非常之低,通常被认为是不可能的。

作用

  所以一般认为MD5码可以唯一地代表原信息的特征,通常用于密码的加密存储,数字签名,文件完整性验证等。

建立  MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc 发明,由 MD2/MD3/MD4 发展而来的。MD5的实际应用是对一段Message(字节串)产生fingerprint(指纹),可以防止被“篡改”。举个例子,天天安全网提供下载的MD5校验值软件WinMD5.zip,其MD5值是1e07ab3591d25583eff5129293dc98d2,但你下载该软件后计算MD5发现其值却是81395f50b94bb4891a4ce4ffb6ccf64b,那说明该ZIP已经被他人修改过,那还用不用该软件那你可自己琢磨着看啦。

应用

  MD5广泛用于加密和解密技术上,在很多操作系统中,用户的密码是以MD5值(或类似的其它算法)的方式保存的,用户Login的时候,系统是把用户输入的密码计算成MD5值,然后再去和系统中保存的MD5值进行比较,来验证该用户的合法性。

 

自己想到的:
 
1. Md5作为用户密码 转码的好处是:
MD5是单向的,很难逆向出密码的原文。保证了密码的安全性。把MD5码存入数据库即可。
而密码的验证就是把他输入的密码转码成MD5,然后和原本的密码(数据库中存储的MD5码值)进行比对即可。注意:山东大学教授04年已经用两个MD5碰撞可以在几个小时内完成。也就是说。如果知道你密码的MD5码值。完全可以通过另个字符序列(和你的密码的MD5码值相同的)来正常登录。(搞数学的真牛) 2.MD5作为文件校验的好处:
 
别人很容易可以得到你当前文件的MD5码(如果不是自己写的特殊的话。)
 
但即使得到你的文件MD5码值也无法 “修改”,“替换”,你的文件。因为MD5码是针对整个文件进行编码的。
 
他没有办法制作一个和你的文件一样的MD5码值的文件。
如果再对文件名进行其他算法的加密。保证其他人也无法理解你的文件名的意义。这样一定程度上保证了文件的安全性。

 

王小云:
编辑本段破解一种先进的密码需要10年
  看过电影《U-571》的人一定记得,美军为了获得德国潜艇使用的密码,不惜用一艘潜艇伪装成德国潜艇去盗取一艘受伤德国潜艇上的解码机和密码本。王小云说,真实的情况绝不是电影里描述的那样。她说:“盟军当年为了破解德军使用的英格曼密码,动用了大批数学家,其中包括图灵,现在数学界中的崇高荣誉‘图灵奖’就是以这个数学家的名字命名的。”“这一批数学家前后经历了10年的时间最后才破解了英格曼密码。”   王小云说,一般而言,一种先进的密码被设计出来后,要破解需要10年左右的时间,而设计一种新的密码大约需要8年的时间。密码学就是在这种不断的创立和破解中发展的。王小云是从1994年开始破解MD5和SHA-1的,到她2004年成功破解恰恰经过了10年。她说,从现在开始世界密码学界已经开始了新密码的设计工作,预计到2012年新一代安全密码将产生。
编辑本段百分之99的人在这个领域里永远也不会成功
  破解密码,在电视剧里,这个职业充满了紧张与刺激。王小云说,现实中的密码破解工作远没有那么戏剧性。她说:“事实上这个领域里的科学家,99%的人永远也不会取得成功。”在破解密码算法RIPEMD的过程中,为了找到最后的破解方法,王小云曾经先后尝试了30多条破解路线。王小云回忆说,经常是破解进行到深夜,一条破解路线在最后的关键两步被证明是不可能的,只好第二天从零开始再找下一种破解方法。如此坚持了3个月,才成功破解。

 

MD5码找到的一些原理:

 

 

 

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
记录生活、工作、学习点滴!
E-Mail:mahaisong@hotmail.com 欢迎大家讨论。
沐海博客园,我有一颗,卓越的心!
点击右上角即可分享
微信分享提示