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

    文章

    4760

    浏览量

    97144
  • md5
    md5
    +关注

    关注

    0

    文章

    30

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MD6639高速DAC芯片替代TI、ADI

    MD6639是EUVIS推出的一款高速DAC芯片,具备10Gsps采样率、9-bit精度、3个时钟周期超低延迟及超低相噪等特性,功率为3.1W,适用于雷达、5G通信及信号采集回放等对高速信号处理要求
    发表于 12-02 09:19

    选型手册:MOT5N50MD 系列 N 沟道功率 MOSFET 晶体管

    仁懋电子(MOT)推出的MOT5N50MD是一款面向500V高压高频场景的N沟道增强型功率MOSFET,凭借快速开关特性、稳定雪崩能力及500V耐压,广泛适用于高频开关电源、电子镇流器、LED电源等
    的头像 发表于 11-03 15:26 244次阅读
    选型手册:MOT<b class='flag-5'>5N50MD</b> 系列 N 沟道功率 MOSFET 晶体管

    MD5信息摘要算法实现二(基于蜂鸟E203协处理器)

    本设计首先根据MD5协处理器的功能设计MD5算法IP核,软件部分使用串口程序助手进行64位加解密结果的输出,E203内核根据地址取出对应的数据,使用相关的指令进行传输显示。通过NICE接口将M
    发表于 10-30 07:54

    MD5信息摘要算法实现一(基于蜂鸟E203协处理器)

    参与下一个512位分组数据中链接变量的初始值,重复2、3步骤,直到完成所有的分组,最后的输出是32位的A、 B、 C和D的级联成128位的信息摘要。 然后将其转换为大端输出。 【注:MD5算法的计算都是
    发表于 10-30 07:18

    数据滤波算法的具体实现步骤是怎样的?

    (高频电磁、瞬时脉冲等),选择适配的滤波算法并落地。以下以电能质量监测中最常用的 IIR 低通滤波(抗高频干扰)、滑动平均滤波(抗瞬时脉冲)、卡尔曼滤波(抗动态波动) 为例,详解具体实现步骤: 一、前置准备:明确滤波目标与硬件基
    的头像 发表于 10-10 16:45 428次阅读

    淘宝商品详情接口(item_get)企业级全解析:参数配置、签名机制与 Python 代码实战

    本文详解淘宝开放平台taobao.item_get接口对接全流程,涵盖参数配置、MD5签名生成、Python企业级代码实现及高频问题排查,提供可落地的实战方案,助你高效稳定获取商品数据。
    的头像 发表于 09-26 09:13 465次阅读
    淘宝商品详情接口(item_get)企业级全解析:参数配置、签名机制与 Python 代码实战

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

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

    HC20MD6208_Datasheet_Ver1

    芯圣电子重磅推出HC20MD6208双向马达驱动芯片,HC20MD6208是控制和驱动双向马达,输入端兼TTL/CMOS电平,具有良好的抗干扰性。内部逻辑控制电路可控制双向马达正转、反转和刹车,价格更具竞争力!
    发表于 09-15 14:25 0次下载

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

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

    harmony-utils之MD5MD5工具类

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

    请问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 1320次阅读
    普冉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 736次阅读