md5校验原理(关于MD5加密算法密码验证问题)

:暂无数据 2026-09-09 16:40:01 0

md5校验原理(关于MD5加密算法密码验证问题)

各位老铁们好,相信很多人对md5校验原理都不是特别的了解,因此呢,今天就来为大家分享下关于md5校验原理以及关于MD5加密算法密码验证问题的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

本文目录

关于MD5加密算法密码验证问题

(恰恰我最近也在研究加密这块,

我们公司项目的RSA ASE MD5 SHA-1加密方案都是我写的。

直接拿我分享会上的稿子了)

先回答你的问题:

你的担心是正确的,

MD5加密的结果值A,是可以由两个不同的内容B和C得到的

即:期望的正确密码 a     a进行MD5加密的结果   0cc175b9c0f1b6a831c399e269772661

某人输入了错误的密码x,

x进行特殊的算法处理,是可以得到0cc175b9c0f1b6a831c399e269772661 这个MD5值的

————

但是你注意一点,错误的密码数据,必须是通过复杂算法得到,简单点称作“碰撞算法”。碰撞算法,其实可以看作是一种伪装算法,即,把错误的东西伪装成某个正确东西的MD5值。

至于“碰撞算法”的原理,可以从MD5加密的原理探知1、2,

MD5加密的过程有四步骤:

  1. 填充 2.初始化变量 3. 处理分组数据 4.输出结果

“碰撞算法”原理就是在前三步进行“大数据量样本的填充-试错-填充试错-直至得到期望的结果

破解过程中有三点是必须清晰的;

1.大量的正确密码的样本

2.采用碰撞算法

3.事先预知的,破解者期望的正确的结果

三者缺一不可

MD5“碰撞算法”的示例场景也是在 文件(比如数字签名)摘要加密上,

即,像密码学家演示的那样:

通过算法,可以得到相同MD5值的A和B  (A和B只是代指),这种算法2004年已经由中国的密码学家王小云实现。

但是回到题主担心的,

非法分子,事先并不知道  张无忌的账号——正确密码对应的MD5值,

他只能用“碰撞算法”去试,随便编一个假的密码,用“碰撞算法”去进行伪装填充-试错

但是试的过程就是无数次跟贵公司后台校验的过程,

在这个过程,贵公司后台应该做了用户当日最大错误密码次数处理。

所以理论上,不存在一个人,输入了错误的密码,登录成功的情况。

假设这个人每天能试5次,使用“碰撞算法”估计要算好几辈子了。

——

但是强调一下“MD5碰撞算法”的应用前提:

  1. 已知的明文以及明文对应的MD5值

  2. 根据1的条件,算法可以伪装出 另一个明文以及相同的MD5值

所以,不存在偶尔输错了一个密码,使用MD5加密,凑巧得到了正确密码的MD5值,这种情况不满足“碰撞算法”的条件和前提。

根本不可能。

安全性总结:

对于文件来说碰撞可能容易,但是对于限定长度的密码或者密文来说,MD5作为一种高性能高安全的数字签名算法来说,还是非常实用的

——

综上 MD5碰撞几个关注点

  1. 多数情况下,会产生不可视字符,而密码不可能存在不可视字符的.

  2. 生成"碰撞"的字符,能和你密码本身长度相等的.基本不可能.


基于上面两点.只要稍作点文章.就可以防止MD5碰撞了.

1.密码进行多次MD5加密
2.密码过滤不过视字符.
3.密码是定长的.例如:32个字符.用户不够的字符,用一固定字符如:空格补充.超长的.一律非法.

————

参考文章

【1】中国密码学家王小云2004年提交的破解MD5的算法

【2】碰撞算法原理分析

【3】产生MD5碰撞的新的充分条件集

【4】MD5碰撞

md5校验的原理

以一个比方和一个实例来简要描述一下其工作过程: 大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为公安机关鉴别罪犯身份最值得信赖的方法;与之类似,MD5就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的“数字指纹”,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”都会发生变化。 我们常常在某些软件下载站点的某软件信息中看到其MD5值,它的作用就在于我们可以在下载该软件后,对下载回来的文件用专门的软件(如Windows MD5Check等)做一次MD5校验,以确保我们获得的文件与该站点提供的文件为同一文件。利用MD5算法来进行文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等方面。

MD5的算法原理

MD5简介:
MD5是Message-digestAlgorithm5(信息-摘要算法)的缩写,经MD2、MD3和MD4发展而来。它是把一个任意长度的字节串变换成一定长的大整数。MD5算法是在MD4的基础上增加了“安全-带子”(safety-belts)的概念。虽然MD5比MD4稍微慢一些,但却更为安全。这个算法很明显的由四个和MD4设计有少许不同的步骤组成。在MD5算法中,信息摘要的大小和填充的必要条件与MD4完全相同。由于MD5算法的使用不需要支付任何版权费用,所以在一般的情况下MD5不失为一种非常优秀的中间技术。
MD5原理:
MD 5算法是对输入信息进行初始化处理后,以512位分组来处理输入的信息,每一分组又被划分
成为16个32位子分组,经过了一系列的变换处理后,输出由四个32位分组,再将这四个32位分组级
联后生成一个128位散列值。具体过程如下:
(1)首先对信息进行填充,即在信息的后面填充一个1和若干个0使其字节长度对512求余的结
果等于448。
(2)对MD 5进行初始化,即MD 5中用四个32位被称作链接变量的整数参数,它们分别为:A =
0x01234567,B = 0x89abcdef,C = 0xfedcba98,D =0x76543210。
(3)开始进入算法的四轮循环运算。循环的次数是信息中512位信息分组的数目。将上面四个链
接变量复制到另外四个变量中:A到a,B到b,C到c,D到d。主循环有四轮,第一轮进行16次操作。
每次操作对a、b、c和d中的其中三个做一次非线性函数运算,然后将所得结果加上第四个变量,再将所得结果向右位移一个不定的数,并加上a、b、c或d中之一。最后用该结果取代a、b、c或d中之一。
以下是每次操作中用到的四个非线性函数(每轮一个)。
f(x,y,z)=(x&y) ((~x)&z)
g(x,y,z)=(xz) (y&(~z))
h(x,y,z)=x y z
i(x,y,z)=y (x (~z))
(其中:“&”是与运算,“ ”是或运算,“~”是非运算,“ ”是异或运算,它们都是位运算符。)
这四个函数的说明:如果x、y和z的对应位是独立和均匀的,那么结果的每一位也应是独立和均
匀的。f是一个逐位运算的函数。即,如果x,那么y,否则z。函数h是逐位奇偶操作符。假设mj表示
消息的第j个子分组(从0到15),ti为第I步中的常数,《 《 《s表示循环左移s位,
则四种操作为:ff(a,b,c,d,mj,s,ti)表示a=b+((a+(f(b,c,d)+mj+ti)《 《 《s)
gg(a,b,c,d,mj,s,ti)表示a=b+((a+(g(b,c,d)+mj+ti)《 《 《s)
hh(a,b,c,d,mj,s,ti)表示a=b+((a+(h(b,c,d)+mj+ti)《 《 《s)
ii(a,b,c,d,mj,s,ti)表示a=b+((a+(i(b,c,d)+mj+ti)《 《 《s)
常数ti表示在第i步中,ti是4294967296*abs(sin(i))的整数部分,4294967296等于2的32次
方,i的单位是弧度。所有这些完成之后,将A、B、C、D分别加上a、b、c、d。然后用下一分组
数据继续运行算法,最后的输出是A、B、C和D的级联。

MD5算法原理及实现

散列函数,也称作哈希函数,消息摘要函数,单向函数或者杂凑函数。散列函数主要用于验证数据的完整性。通过散列函数,可以创建消息的“数字指纹”,消息接收方可以通过校验消息的哈希值来验证消息的完整性,防止消息被篡改。散列函数具有以下特性:

任何消息经过散列函数处理后,都会产生一个唯一的散列值,这个散列值可以用来验证消息的完整性。计算消息散列值的过程被称为“消息摘要”,计算消息散列值的算法被称为消息摘要算法。常使用的消息摘要算法有:MD—消息摘要算法,SHA—安全散列算法,MAC—消息认证码算法。本文主要来了解MD算法。

MD5算法是典型的消息摘要算法,它是由MD4,MD3和MD2算法演变而来。无论是哪一种MD算法,其原理都是接受一个任意长度的消息并产生一个128位的消息摘要。如果把得到的消息摘要转换成十六进制字符串,则会得到一个32字节长度的字符串,我们平常见到的大部分MD数字指纹就是一个长度为32的十六进制字符串。

假设原始消息长度是b(以bit为单位),注意这里b可以是任意长度,并不一定要是8的整数倍。计算该消息MD5值的过程如下:

在计算消息的MD5值之前,首先对原始信息进行填充,这里的信息填充分为两步。
第一步,对原始信息进行填充,填充之后,要求信息的长度对512取余等于448。填充的规则如下:假设原始信息长度为b bit,那么在信息的b+1 bit位填充1,剩余的位填充0,直到信息长度对512取余为448。这里有一点需要注意,如果原始信息长度对512取余正好等于448,这种情况仍然要进行填充,很明显,在这时我们要填充的信息长度是512位,直到信息长度对512取余再次等于448。所以,填充的位数最少为1,最大为512。
第二步,填充信息长度,我们需要把原始信息长度转换成以bit为单位,然后在第一步操作的结果后面填充64bit的数据表示原始信息长度。第一步对原始信息进行填充之后,信息长度对512取余结果为448,这里再填充64bit的长度信息,整个信息恰好可以被512整除。其实从后续过程可以看到,计算MD5时,是将信息分为若干个分组进行处理的,每个信息分组的长度是512bit。

在进行MD5值计算之前,我们先来做一些定义。

下面就是最核心的信息处理过程,计算MD5的过程实际上就是轮流处理每个信息分组的过程。

MD5算法实现如下所示。

这里也和Java提供的标准MD5算法进行了对比,通过测试可以看到该MD5计算的结果和Java标准MD5算法的计算结果是一样的。

关于md5校验原理和关于MD5加密算法密码验证问题的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

md5校验原理(关于MD5加密算法密码验证问题)

本文编辑:admin

更多文章:


win10不能用ghost恢复么(win10可以用ghost备份吗)

win10不能用ghost恢复么(win10可以用ghost备份吗)

大家好,如果您还对win10不能用ghost恢复么不太了解,没有关系,今天就由本站为大家分享win10不能用ghost恢复么的知识,包括win10可以用ghost备份吗的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年9月9日 16:20

工行网银安全控件安装失败(mac 中国工商银行安全插件下载无法安装)

工行网银安全控件安装失败(mac 中国工商银行安全插件下载无法安装)

这篇文章给大家聊聊关于工行网银安全控件安装失败,以及mac 中国工商银行安全插件下载无法安装对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年9月9日 11:20

清明节是几月几日(清明节几月几日准确答案)

清明节是几月几日(清明节几月几日准确答案)

各位老铁们,大家好,今天由我来为大家分享清明节是几月几日,以及清明节几月几日准确答案的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年9月9日 10:20

excel免费(excel怎么在线多人协作免费)

excel免费(excel怎么在线多人协作免费)

大家好,今天小编来为大家解答以下的问题,关于excel免费,excel怎么在线多人协作免费这个很多人还不知道,现在让我们一起来看看吧!

2026年9月9日 10:00

网维大师服务器配置(网维大师如何开启服务器热备功能)

网维大师服务器配置(网维大师如何开启服务器热备功能)

今天给各位分享网维大师如何开启服务器热备功能的知识,其中也会对网维大师如何开启服务器热备功能进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年9月9日 06:30

5v5游戏大全手游(5v5竞技手游排行榜)

5v5游戏大全手游(5v5竞技手游排行榜)

本篇文章给大家谈谈5v5游戏大全手游,以及5v5竞技手游排行榜对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年9月9日 04:50

一听音乐免费下载(一听音乐网往手机里铃声下载是免费的嘛)

一听音乐免费下载(一听音乐网往手机里铃声下载是免费的嘛)

各位老铁们,大家好,今天由我来为大家分享一听音乐免费下载,以及一听音乐网往手机里铃声下载是免费的嘛的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年9月9日 02:50

经典老游戏推箱子下载(老年手机怎么样才能玩到蜗牛搬箱)

经典老游戏推箱子下载(老年手机怎么样才能玩到蜗牛搬箱)

大家好,今天小编来为大家解答以下的问题,关于经典老游戏推箱子下载,老年手机怎么样才能玩到蜗牛搬箱这个很多人还不知道,现在让我们一起来看看吧!

2026年9月9日 00:50

金币修改器无需root版(手机上的游戏,怎么让他以几倍速度进行,不需要root)

金币修改器无需root版(手机上的游戏,怎么让他以几倍速度进行,不需要root)

大家好,关于金币修改器无需root版很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于手机上的游戏,怎么让他以几倍速度进行,不需要root的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站

2026年9月9日 00:20

尾 游戏单机(第三人称尾随视角的单机角色游戏)

尾 游戏单机(第三人称尾随视角的单机角色游戏)

大家好,如果您还对尾 游戏单机不太了解,没有关系,今天就由本站为大家分享尾 游戏单机的知识,包括第三人称尾随视角的单机角色游戏的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年9月9日 00:00

最近更新

nevada的意思(nevada中文意思)
2026-09-09 16:00:02 浏览:0
热门文章

dessert(dessert是什么意思)
2026-05-03 12:45:03 浏览:7
标签列表