【计算机安全】MD5 | 唯一密码,爱的安全守护者

【计算机安全】MD5 | 唯一密码,爱的安全守护者MD5 md5

大家好,欢迎来到IT知识分享网。

零、前言


一、MD5 概述


1、什么是 MD5 ?

         MD5,讯息摘要演算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码杂凑函数,可以产生出一个128位元(16位元组)的散列值(hash value),用于确保信息传输完整一致。

2、MD5的特性


  1. 长度固定
            无论输入多少,输入固定为 16 字节 ,相当于超损压缩。
  2. 不可逆
            无法从结果反推原始数据。由于长度固定的特性,中间会丢掉一些信息。因此,相同数据的MD5值肯一样,不同数据的MD5值几乎不可能一样。
            MD5 是摘要算法,由MD5产生的编码之于正文,正如指纹之于人一样,只要正文不变,那么摘要就不变。
            因为MD5是有限多个的而原文可以是无数多个。因此,一个MD5理论上可能对应无数多个原文的。主流的MD5将 任意长度 的字节串 映射 为一个 128bit 的 大整数 ,一共有 2128 种可能,尽管这个数字是有限多个的,但是世界上可以被用来加密的原文却有无数的可能性。这就好比,只知道指纹与人的关系。


  3. 高度离散型 (抗修改性)
            输出的16个字节,没有规律可言,因此结果也无法预测。同时,对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
  4. 抗碰撞性
            想找到两个不同的数据,使它们具有相同的MD5值,是非常困难的。同样地,已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

二、MD5 算法原理


        MD5算法的原理是 将输入的消息分成 512位 的 数据块 ,每个数据块 再分成 16 个 32位 的 小块,通过一系列的 位运算 和 非线性函数 ,对 每个小块 进行 处理 ,最终得到 一个 128位 的 哈希值。由于MD5算法的设计,即使输入的消息只有微小的变化,也会导致 输出的哈希值 发生巨大的变化,因此可以用来 验证 数据的完整性 和 真实性。

1、数据填充

数据填充,即进行 补位 操作

  1. 目的:对消息进行数据填充,使得 长度 变成 N*512 + 448 该步骤必须进行
  2. 方法:先补一个 1 再补上 多个 0 ,使得总长度 除于 512 的余数 为 448

2、添加消息长度


  1. 目的:使得最终消息长度就是512的整数倍。使得消息长度变成 (N+1)*512
  2. 方法:在第一步结果之后再填充上原消息的长度,可用来进行的存储长度为64位。如果消息长度大于264,则只使用其低64位的值,即(消息长度 对 264取模)。
  3. 注意:哪怕 MD5 消息已经是正确的长度,也必须填充MD5消息长度。

3、初始化MD缓存器


4、处理数据段


  1. 定义4个非线性函数F、G、H、I,对输入的报文运算以512位数据段为单位进行处理。
  2. 对每个数据段都要进行4轮的逻辑处理,在4轮中分别使用4个不同的函数F、G、H、I。
  3. 每一轮以ABCD和当前的512位的块为输入,处理后送入ABCD(128位

三、MD5 的 用途


1、密码存储


常见的MD5 密码存储方式:

  • 使用哈希存储密码;
  • 使用哈希加盐存储密码;
  • 使用加密算法存储密码;
  • 使用 bcrypt 存储密码;

2、数字签名


        MD5 将整个文件当做一个大文本信息,通过不可逆的字符串变换算法,产生一个唯一的 MD5 信息摘要。需要注意,这需要一个第三方认证机构。例如A写了一个文件,认证机构对此文件用MD5算法产生摘要信息并做好记录。若以后A说这文件不是他写的,权威机构只需对此文件重新产生摘要信息,然后跟记录在册的摘要信息进行比对,相同的话,就证明是A写的了。这就是所谓的“数字签名”。

3、文件完整性校验


        MD5 将整个文件当做一个大文本信息,通过不可逆的字符串变换算法,产生一个唯一的 MD5 信息摘要;

4、垃圾邮件筛选

四、常见面试题




























免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/133110.html

(0)
上一篇 2025-07-26 15:33
下一篇 2025-07-26 15:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信