算法md5加密算法的C(C)代码实现

c md5  时间:2021-01-27  阅读:()

md5加密算法的C(C++)代码实现

综述0 X4 m.N' I,a-y1 d8 Q&K$O3_

MD5的全称是message-digest algorithm 5 信息-摘要算法 在90年代初由mit laboratory for computer science和rs a data security inc的ronald l. rivest开发出来经md2、md3和md4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式就是把一个任意长度的字节串变换成一定长的大整数 。不管是md2、md4还是md5它们都需要获得一个随机长度的信息并产生一个128位的信息摘要。虽然这些算法的结构或多或少有些相似但md2的设计与md 4和md5完全不同那是因为md2是为8位机器做过设计优化的而md4和md5却是面向32位的电脑。这三个算法的描述和c语言源代码在internet rfcs1321中有详细的描述http://www.ietf.org/rfc/rfc 1321.txt /*在本文下面是这篇文章

*/这是一份最权威的文档 由ronald l. rivest在1992年8月向ieft提交。

.H'z"A7 X/X1 T1 n%U

*L6 E.h-n1 I*B+@,a;W rivest在1989年开发出md2算法。在这个算法中首先对信息进行数据补位使信息的字节长度是16的倍数。然后 以一个16位的检验和追加到信息末尾。并且根据这个新产生的信息计算出散列值。后来 rogier和chauvaud发现如果忽略了检验和将产生md2冲突。md2算法的加密后结果是唯一的--既没有重复。

0l9S1 m#v,u0X1L: a.w* |4}

为了加强算法的安全性 r ive s t在1990年又开发出md4算法。md4算法同样需要填补信息以确保信息的字节长度加上448后能被512整除信息字节长度mo d512=448 。然后一个以64位二进制表示的信息的最初长度被添加进来。信息被处理成512位damg?rd/me rk le迭代结构的区块而且每个区块要通过三个不同步骤的处理。 den boer和bosselaers以及其他人很快的发现了攻击md4版本中第一步和第三步的漏洞。 dobbertin向大家演示了如何利用一部普通的个人电脑在几分钟内找到md4完整版本中的冲突这个冲突实际上是一种漏洞它将导致对不同的内容进行加密却可能得到相同的加密后结果 。毫无疑问 md4就此被淘汰掉了。-J+H$@:K$X: ` ! };E&|,d"w-w:y/K4 H,j

尽管md4算法在安全上有个这么大的漏洞但它对在其后才被开发出来的好几种信息安全加密算法的出现却有着不可忽视的引导作用。除了md5以外其中比较有名的还有sha-1、 ripe-md以及haval等。 .x#?*F#P$P#|/g$n%@9 R#r s0 |6 z4@9 h

一年以后 即1991年 rive s t开发出技术上更为趋近成熟的md5算法。它在md4的基础上增加了"安全-带子" sa fety-be lts的概念。虽然md5比md 4稍微慢一些但却更为安全。这个算法很明显的由四个和md4设计有少许不同的步骤组成。在md 5算法中信息-摘要的大小和填充的必要条件与md4完全相同。 denboer和b osselaers曾发现md5算法中的假冲突pseudo-collisions 但除此之外就没有其他被发现的加密后结果了。 &]$T'N'O)Y:F*@! J, i&g&d

7 U#Q$`*h#R0 n9~ van oorschot和wiener曾经考虑过一个在散列中暴力搜寻冲突的函数brute-force hash function 而且他们猜测一个被设计专门用来搜索md5冲突的机器这台机器在1994年的制造成本大约是一百万美元可以平均每

24天就找到一个冲突。但单从1991年到2001年这10年间竟没有出现替代md5算法的md6或被叫做其他什么名字的新算法这一点我们就可以看出这个瑕疵并没有太多的影响md5的安全性。上面所有这些都不足以成为md5的在实际应用中的问题。并且 由于md5算法的使用不需要支付任何版权费用的所以在一般的情况下非绝密应用领域。但即便是应用在绝密领域内 md 5也不失为一种非常优秀的中间技术  md5怎么都应该算得上是非常安全的了。 7 S"M5 f6 m2 G#H, \9c

#e8 F(f5 |8 r%| T 算法的应用"^3 R:K!w3 x0 B$U+b

0 Y9 X9 v0 n$N4@2 y-N-K md5的典型应用是对一段信息message产生信息摘要me s sa ge-dige st  以防止被篡改。 比如在unix下有很多软件在下载的时候都有一个文件名相同文件扩展名为.md5的文件在这个文件中通常只有一行文本大致结构如v0T1b)o3X4e-M

#a8 i1 n8 {0 g md5(tanajiya.tar.gz)=0ca175b9c0f726a831d895e269332461 1H0 D,_. s9 X0 H5 Z+t+s1 [

(x9 n&O0 m$^2 h3 W(n#n 这就是tanajiya.tar.gz文件的数字签名。md5将整个文件当作一个大文本信息通过其不可逆的字符串变换算法产生了这个唯一的md 5信息摘要。如果在以后传播这个文件的过程中无论文件的内容发生了任何形式的改变包括人为修改或者下载过程中线路不稳定引起的传输错误等 只要你对这个文件重新计算md5时就会发现信息摘要不相同 由此可以确定你得到的只是一个不正确的文件。如果再有一个第三方的认证机构用md 5还可以防止文件作者的"抵赖"这就是所谓的数字签名应用。 -d+o%e.C&f0[+_"N&s6 g!Q(z2l

!@8 t3 l#q6 t#S"B2 Z( `9^ md5还广泛用于加密和解密技术上。 比如在unix系统中用户的密码就是以md5 或其它类似的算法经加密后存储在文件系统中。当用户登录的时候系统把用户输入的密码计算成md5值然后再去和保存在文件系统中的md5值进行比较进而确定输入的密码是否正确。通过这样的步骤系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这不但可以避免用户的密码被具有系统管理员权限的用户知道而且还在一定程度上增加了密码被破解的难度。

;U) I6 n7}7 l'F2 w%E$J8@; s:w0 c G:f2 E

正是因为这个原因现在被黑客使用最多的一种破译密码的方法就是一种被称为"跑字典"的方法。有两种方法得到字典一种是日常搜集的用做密码的字符串表另一种是用排列组合方法生成的先用md5程序计算出这些字典项的md5值然后再用目标的md5值在这个字典中检索。我们假设密码的最大长度为8位字节8 bytes  同时密码只能是字母和数字共26+26+10=62个字符排列组合出的字典的项数则是p(62,1)+p(62,2)….+p(62,8)那也已经是一个很天文的数字了存储这个字典就需要tb级的磁盘阵列而且这种方法还有一个前提就是能

获得目标账户的密码md 5值的情况下才可以。这种加密技术被广泛的应用于unix系统中这也是为什么unix系统比一般操作系统更为坚固一个重要原因。 6 g+F#M!K:d; i!~

"Q2\,N9D(o- r!a8n

算法描述0 V!P1 X2 m+C*f0 k4 T0 b

;L" {+\%Z) l9 S! J*K本帖隐藏的内容需要回复才可以浏览

搜索更多相关主题的帖子:算法代码

UID 107404无忧币6222阅读权限70性别男注册时间2007-1-19最后登录2010-5-8论坛详细资料

TO P

维护论坛纯净人人有责灌水严惩举报有奖yangfanlengdie

高级工程师

帖子3374精华3积分3300无忧币6222最后登录2010-5-8

发短消息家园好友当前离线个人博客沙发大中小发表于2007-4-13 12:58只看该作者

弱电安防培训--工信部认证| 全球网友贺51 CTO五周年生日快乐| 无忧竞拍第八场火热竞拍 | 业务连续性与灾难备份技术【有奖】

一个比较好的方法是什么呢 ;Q2 U8 J#\3 h-U!k*r&`

'H2 z%a7 J8 B$V9 n B本帖隐藏的内容需要回复才可以浏览

安徽BGP云服务器 1核 1G 5M 29元/月 香港云服务器 1核 1G 19元首月 麻花云

麻花云怎么样?麻花云公司成立于2007年,当前主打产品为安徽移动BGP线路,数据中心连入移动骨干网。提供5M,10M大带宽云主机,香港云服务器产品,数据中心为香港将军澳机房,香港宽频机房 cn2-GIA优质线路、采用HYPER-V,KVM虚拟技术架构一、麻花云官网点击直达麻花云官方网站合肥网联网络科技有限公司优惠码: 专属优惠码:F1B07B 享受85折优惠。最新活动 :双11 云上嗨购 香港云主...

VoLLcloud:超便宜香港CMI大带宽vps-三网CMI直连-年付四免服务-低至4刀/月-奈飞

vollcloud LLC创立于2020年,是一家以互联网基础业务服务为主的 技术型企业,运营全球数据中心业务。致力于全球服务器租用、托管及云计算、DDOS安 全防护、数据实时存储、 高防服务器加速、域名、智能高防服务器、网络安全服务解决方案等领域的智 能化、规范化的体验服务。所有购买年付产品免费更换香港原生IP(支持解锁奈飞),商家承诺,支持3天内无条件退款(原路退回)!点击进入:vollclo...

老周互联24小时无理由退款,香港原生IP,28元起

老周互联怎么样?老周互联隶属于老周网络科技部旗下,创立于2019年12月份,是一家具有代表性的国人商家。目前主营的产品有云服务器,裸金属服务器。创办一年多以来,我们一直坚持以口碑至上,服务宗旨为理念,为用户提供7*24小时的轮班服务,目前已有上千多家中小型站长选择我们!服务宗旨:老周互联提供7*24小时轮流值班客服,用户24小时内咨询问题可提交工单,我们会在30分钟内为您快速解答!另免费部署服务器...

c md5为你推荐
集成显卡和独立显卡哪个好集成显卡和独立显卡是什么区别呢哪个好?机械表和石英表哪个好自动石英表与全自动机械表哪个好绝地求生加速器哪个好绝地求生用什么加速器比较好?手机杀毒软件哪个好手机杀毒软件那个好用网校哪个好哪个网校比较好?考生个人空间登录自学考试的“考生个人空间”密码忘记了……一定要本人带身份证和考籍证去有关部门吗?东莞电信网上营业厅怎样联系申请东莞中国电信固话360云盘网页版最近360云盘网页版登陆后,找不到文件共享群了。哪位知道在哪里可以进去文件共享群?360云查杀360安全卫士中的木马云查杀有用吗?360云盘企业版360云盘企业版网页打开的 怎么不能编辑?
中国域名注册 工信部域名备案 博客主机 国外服务器网站 贵州电信宽带测速 京东云擎 debian6 免费全能空间 网通ip godaddy域名证书 ntfs格式分区 台湾google starry 阿里云邮箱登陆 湖南铁通 蓝队云 美国主机 ping值 nic 阿里云宕机故障 更多