当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: MD5算法研究 2002年11月20日 15:47 综述 MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L...
 

 

 ·the first blog of mine    »显示摘要«
    摘要:this is only a test. for my first ,and the most important period of self-study.(2004-7-1~2004-7-15) the items involved: 1) c++, object orient disign 2) linux, linux driver 3) tcp/ip, netwrok ......
 ·影响中国软件开发20人    »显示摘要«
    摘要: 进入2004年,伴随着各种机遇和挑战,中国的软件开发仍然在摸索中前进,程序员也在不断的学习和工作中探寻自己的未来。在这个过程中,当然少不了各种技术和公司对他们施加的影响。跟随谁,选择什么路线永远是一种充满未知数的挑战。 谈到影响,可能以微软为首的软件巨头更容易被提及,毕竟开发人员所直接应用的操作系统、语言、开发工具等各种技术都掌握在这些公司手中。然而,这并不能抹杀和妨碍提起国内一些企业和人士对中国软件开发各方面产生的影响。 站在这个角度,本文在国内的软件......


MD5算法研究
以下为转帖内容

【相关文章:查询锁定表中非锁定记录。

【扩展阅读:利用DataSet存取SQL Serve

【扩展信息:Mobile Hot Five!未来移动

md5算法研究

2002年11月20日 15:47

综述

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

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

  为了加强算法的安全性,rivest在1990年又开发出md4算法。md4算法同样需要填补信息以确保信息的字节长度加上448后能被512整除(信息字节长度mod 512 = 448)。然后,一个以64位二进制表示的信息的最初长度被添加进来。信息被处理成512位damg?rd/merkle迭代结构的区块,而且每个区块要通过三个不同步骤的处理。den boer与bosselaers以及其他人很快的发现了攻击md4版本中第一步与第三步的漏洞。dobbertin向大家演示了如何利用一部普通的个人电脑在几分钟内找到md4完整版本中的冲突(这个冲突实际上是一种漏洞,它将导致对不同的内容进行加密却可能得到相同的加密后结果)。毫无疑问,md4就此被淘汰掉了。

  尽管md4算法在安全上有个这么大的漏洞,但它对在其后才被开发出来的好几种信息安全加密算法的出现却有着不可忽视的引导作用。除了md5以外,其中比较有名的还有sha-1、ripe-md以及haval等。

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

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

    摘要:一、概述  文本编辑器是一种最常用的应用程序,下面我们利用jbuilder 9集成开发环境,用java语言实现一个简单的文本编辑器。该文本编辑器具有读出、写入、编辑文本文件,可以设定文字颜色、字形和编辑区域背景颜色等基本功能。 我们首先通过jbuilder 9项目向导和应用向导创建项目,然后应用可视化设计工具,修改ui设计,连接事件,编辑源码以及常用控件和任务诸如菜单项、工具条、文本区域和系统事件等常用控件和任务的处理。涉及到具体技术有: 用jfilech......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE