本文主要包含如下内容:MD5算法概述、处理步骤、编程实现以及安全性分析。
实验三 MD5算法
实验目的:
1.了解哈希函数的概念和功能,以及一些典型的哈希函数
2.进一步理解MD5算法的概念及结构,掌握MD5算法对数据的处理过程
3.通过编程模拟MD5算法的处理步骤
实验内容:
一.MD5算法概述
MD5算法是一种消息摘要算法(Message Digest Algorithm),此算法以任意长度的信息(message)作为输入进行计算,产生一个128-bit(16-byte)的指纹或报文摘要(fingerprint or message digest)。两个不同的message产生相同message digest的几率相当小,从一个给定的message digest逆向产生原始message更是困难,因此MD5算法适合用在数字签名应用中。MD5实现简单,在32位的机器上运行速度也相当快,当然实际应用也不仅仅局限于数字签名。
MD5算法的处理步骤:
第一步:增加填充
增加padding使得数据长度(bit为单位)模512为448。
如果数据长度正好是模512为448,增加512个填充bit,也就是说填充的个数为1-512。 第一个bit为1,其余全部为0。(即第一个字节为0x80)
第二步:补足长度
将数据长度转换为64bit的数值,如果长度超过64bit所能表示的数据长度的范围,值保留最后64bit,
增加到前面填充的数据后面,使得最后的数据为512bit的整数倍。也就是32bit的16倍的整数倍。
在RFC1321中,32bit称为一个word。
第三步:初始化变量:
用到4个变量,分别为A、B、C、D,均为32bit长。初始化为:
A: 0x01234567
B: 0x89abcdef
C: 0xfedcba98
D: 0x76543210
第四步:数据处理
首先定义4个辅助函数:
F(X,Y,Z) = XY v not(X) Z
G(X,Y,Z) = XZ v Y not(Z)
H(X,Y,Z) = X xor Y xor Z
I(X,Y,Z) = Y xor (X v not(Z))
其中:XY表示按位与,X v Y表示按位或,not(X)表示按位取反。xor表示按位异或。 函数中的X、Y、Z均为32bit。
第五步:输出
最后得到的ABCD为输出结果,共128bit。A为低位,D为高位。
MD5算法实现 JAVA_计算机软件及应用_IT/计算机_专业资料。MD5加密算法实现,编程语言JAVA,可直接运行! 是最好的实例public class MD5 { static final int S11 ...
MD5算法简介及编程实现 8页 3下载券 MD5算法简介及两种实现方... 6页 1...MD5 简介 所谓 MD5,即"Message-Digest Algorithm 5(信息-摘要算法)",它由 ...
MD5算法简介及两种实现方法(使用WindowsAPI函数)_IT/计算机_专业资料 暂无评价0人阅读0次下载举报文档 MD5算法简介及两种实现方法(使用WindowsAPI函数)_IT/...
MD5的介绍 算法和实现MD5的介绍 算法和实现隐藏>> MD5 的介绍 算法和实现 ...MD5 在编程中的实现 下面来看看如何在 C 语言和 VB 中实现 MD5 算法 */ ...
MD5算法的设计与实现_机械/仪表_工程科技_专业资料。实验三 MD5 算法的设计...三、实验内容: 1、 MD5 算法简介: Message Digest Algorithm MD5(中文名为...
这将在下面两节介绍。 8.2 微型 MD5 的设计为了分析的方便 MD5 算法中 F ... java实现MD5算法 1页 免费 面向对象程序设计2009-2... 12页 1下载券...
MD5算法详细介绍_理学_高等教育_教育专区。MD5算法详细介绍MD5 算法详细介绍 ...当你按照我上面所说的方法实现 md5 算法以后,你可以用以下几个信息对你做出来...
md5算法_工学_高等教育_教育专区。实际编程了解MD5算法的加密和解密过程,加深对...我们下面从 MD5 入手来介绍 HASH 算法的实现机制。 MD 系列单向散列函数是由 ...
19页 免费 MD5算法 8页 免费 MD5算法实现 1页 免费喜欢此文档的还喜欢...●MD5算法简介 MD5算法是单向散列算法的一种。单向散列算法也称为HASH算法,是一...
MD5算法及C++实现_IT/计算机_专业资料。算法 程序相关MD5算法及C++实现 ajumail 发表于 2005-05-26 近日要用到文件校验算法,查看了一下相关资料,得到以下理论与...
热门文档