0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

md5的算法步骤及应用

姚小熊27 ? 来源:网络整理 ? 作者:网络整理 ? 2020-11-16 16:01 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

md5的算法步骤

按位补充数据

在MD5算法中,首先需要对信息进行填充,这个数据按位(bit)补充,要求最终的位数对512求模的结果为448。也就是说数据补位后,其位数长度只差64位(bit)就是512的整数倍。即便是这个数据的位数对512求模的结果正好是448也必须进行补位。补位的实现过程:首先在数据后补一个1 bit; 接着在后面补上一堆0 bit, 直到整个数据的位数对512求模的结果正好为448。总之,至少补1位,而最多可能补512位 。

扩展长度

在完成补位工作后,又将一个表示数据原始长度的64 bit数(这是对原始数据没有补位前长度的描述,用二进制来表示)补在最后。当完成补位及补充数据的描述后,得到的结果数据长度正好是512的整数倍。也就是说长度正好是16个(32bit) 字的整数倍 。

初始化MD缓存器

MD5运算要用到一个128位的MD5缓存器,用来保存中间变量和最终结果。该缓存器又可看成是4个32位的寄存器A、B、C、D,初始化为 :

A : 01 23 45 67

B: 89 ab cd ef

C: fe dc ba 98

D: 76 54 32 10

处理数据段

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

输出

信息摘要最终处理成以A, B, C, D 的形式输出。也就是开始于A的低位在前的顺序字节,结束于D的高位在前的顺序字节。

md5应用

用于密码管理

当我们需要保存某些密码信息以用于身份确认时,如果直接将密码信息以明码方式保存在数据库中,不使用任何保密措施,系统管理员就很容易能得到原来的密码信息,这些信息一旦泄露, 密码也很容易被破译。为了增加安全性,有必要对数据库中需要保密的信息进行加密,这样,即使有人得到了整个数据库,如果没有解密算法,也不能得到原来的密码信息。MD5算法可以很好地解决这个问题,因为它可以将任意长度的输入串经过计算得到固定长度的输出,而且只有在明文相同的情况下,才能等到相同的密文,并且这个算法是不可逆的,即便得到了加密以后的密文,也不可能通过解密算法反算出明文。这样就可以把用户的密码以MD5值(或类似的其它算法)的方式保存起来,用户注册的时候,系统是把用户输入的密码计算成 MD5 值,然后再去和系统中保存的 MD5 值进行比较,如果密文相同,就可以认定密码是正确的,否则密码错误。通过这样的步骤,系统在并不知道用户密码明码的情况下就可以确定用户登录系统的合法性。这样不但可以避免用户的密码被具有系统管理员权限的用户知道,而且还在一定程度上增加了密码被破解的难度。

电子签名

MD5 算法还可以作为一种电子签名的方法来使用,使用 MD5算法就可以为任何文件(不管其大小、格式、数量)产生一个独一无二的“数字指纹”,借助这个“数字指纹”,通过检查文件前后 MD5 值是否发生了改变,就可以知道源文件是否被改动。我们在下载软件的时候经常会发现,软件的下载页面上除了会提供软件的下载地址以外,还会给出一串长长的字符串。这串字符串其实就是该软件的MD5 值,它的作用就在于下载该软件后,对下载得到的文件用专门的软件(如 Windows MD5 check 等)做一次 MD5 校验,以确保我们获得的文件与该站点提供的文件为同一文件。利用 MD5 算法来进行文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等方面 。

垃圾邮件筛选

在电子邮件使用越来越普遍的情况下,可以利用 MD5 算法在邮件接收服务器上进行垃圾邮件的筛选,以减少此类邮件的干扰,具体思路如下:

建立一个邮件 MD5 值资料库,分别储存邮件的 MD5 值、允许出现的次数(假定为 3)和出现次数(初值为零)。

对每一封收到的邮件,将它的正文部分进行MD5 计算,得到 MD5 值,将这个值在资料库中进行搜索。

如未发现相同的 MD5 值,说明此邮件是第一次收到,将此 MD5 值存入资料库,并将出现次数置为1,转到第五步。

如发现相同的 MD5 值,说明收到过同样内容的邮件,将出现次数加 1,并与允许出现次数相比较,如小于允许出现次数,就转到第五步。否则中止接收该邮件。结束。

接收该邮件。
责任编辑:YYX

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4716

    浏览量

    95762
  • md5
    md5
    +关注

    关注

    0

    文章

    30

    浏览量

    21115
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    能源管理中MD(需量)控制解决方案

    在能源管理领域,MD(Maximum Demand,最大需量)作为衡量用户在电费结算周期内单位时间平均负荷最大值的关键指标,直接影响企业用电成本与电力系统稳定性。有效的MD控制可通过技术、管理、政策
    的头像 发表于 07-30 22:45 ?123次阅读
    能源管理中<b class='flag-5'>MD</b>(需量)控制解决方案

    harmony-utils之MD5MD5工具类

    harmony-utils之MD5MD5工具类 harmony-utils 简介与说明 [harmony-utils] 一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类,致力于
    的头像 发表于 06-30 16:49 ?192次阅读

    请问LIS2MDL的表5中Idd_PD的值,是在idle mode下得到的吗,寄存器60H的md1,md0均为1?

    请问LIS2MDL的表5中Idd_PD的值,是在idle mode下得到的吗,寄存器60H的md1,md0均为1?多谢
    发表于 03-14 14:00

    GD32VW553-MD1数据表

    电子发烧友网站提供《GD32VW553-MD1数据表.pdf》资料免费下载
    发表于 01-22 16:40 ?0次下载
    GD32VW553-<b class='flag-5'>MD</b>1数据表

    普冉PY32MD310单片机介绍

    ,芯片集成了多个通讯接口,一个 I2C、2个SPI和2个USART。还有1 路 12-bit ADC,5 个 16 位定时器,以及 2 路比较器外设。PY32MD310单片机采用QFN32封装,有16个通用端口,均可作为外部中断。
    的头像 发表于 01-15 10:24 ?830次阅读
    普冉PY32<b class='flag-5'>MD</b>310单片机介绍

    安装的是CCS7.0,在新建工程的时候,为什么找不到PGA900这个芯片?

    我安装的是CCS7.0,在新建工程的时候,找不到PGA900这个芯片。另外,CCS7.0下载页面还有一个文件MD5,这是什么文件,有什么作用,怎么用?
    发表于 12-27 06:43

    PostgreSQL将不再支持MD5密码

    根据 PostgreSQL 代码仓库的最新动态,近日有维护者提交了“弃用 MD5 密码支持”的 commit。 该维护者指出,MD5 被认为不适合用作加密散列算法已有一段时间。 此外
    的头像 发表于 12-10 16:14 ?546次阅读

    使用PCM1860的过程中,发现PCM1860的DOUT输出不正常,为什么?

    在使用1860的过程中,发现PCM1860的DOUT输出不正常. AVDD=3.3V,IODD=3.3V,DDD=3.3V MD0=0,MD1=0,MD2=0,MD3=1,
    发表于 09-29 07:21

    开源物联网技术--哈希算法MD5加密功能技术分享

    MD5(Message-Digest Algorithm 5)是一种常用的哈希函数,通常用于数据加密和安全校验等场合。MD5 算法可以将任意长度的消息输入计算出一个固定长度的摘要,其生
    的头像 发表于 09-21 09:57 ?2795次阅读
    开源物联网技术--哈希<b class='flag-5'>算法</b><b class='flag-5'>MD5</b>加密功能技术分享

    第三章:龙芯2K0300蜂鸟板资料分析

    |--u-boot-with-spl.bin.md5u boot bin md5格式文件
    发表于 09-11 17:47

    嵌入式学习-Ubuntu系统安装之使用提供的ubuntu系统

    环境文件夹中有以下文件:为了保证开发环境在下载过程中没有出现文件损坏,下载完后要对每一个文件进行MD5校验(可以通过网络进行MD5在线校验,也可以下载MD5校验工具),文件校验完生成的校验码与资料
    发表于 08-09 15:40

    Ubuntu系统安装之使用提供的ubuntu系统

    环境文件夹中有以下文件:为了保证开发环境在下载过程中没有出现文件损坏,下载完后要对每一个文件进行MD5校验(可以通过网络进行MD5在线校验,也可以下载MD5校验工具),文件校验完生成的校验码与资料
    发表于 08-08 11:00

    MD9360四路CANFD应用实例

    随着通信技术的进步和总线技术的广泛应用,对总线带宽和传输速率提出了更高的要求。MD9360-T核心板提供四路CANFD,让你的数据传输更快速、更可靠。MD9360-EV-Board评估板(如图1所示
    的头像 发表于 08-08 08:25 ?807次阅读
    <b class='flag-5'>MD</b>9360四路CANFD应用实例

    MD9360多屏同显异显应用实例

    MD9360-T核心板多屏同显、异显技术,让你的显示学会分身术。MD9360-EV-Board评估板(如图1所示)是致远电子精心推出的集工控与评估于一身的评估底板。该评估底板可选搭配MD
    的头像 发表于 08-07 08:25 ?765次阅读
    <b class='flag-5'>MD</b>9360多屏同显异显应用实例

    如何利用MD系列电调适配呼吸机电机

    MD系列电调包括MD100、MD200系列,是针对无刷电机控制而设计的FOC控制器,支持中低功率直流无刷电机(支持伺服、霍尔和无感)。电调具有完善的保护机制和功能接口,以满足各种应用场景。本文将介绍如何利用
    的头像 发表于 08-06 16:21 ?1267次阅读
    如何利用<b class='flag-5'>MD</b>系列电调适配呼吸机电机