​​​​​​​MD5加密原理

 

MD5是以512位的分组来处理输入的信息,并且将每一分组又划分成16个32  位的子分组,经过了一系列的处理后,算法的输出由四个32位的分组组成,将这 四个32位的分组结合后将生成一个128位的散列值。详细的MD5加密算法流程如 图6-13所示。

350b0b477f5e4a6ea9be7aa479e699c4.png

图6-13    MD5加密算法流程

下面介绍其中的关键步骤。

1.填充

 

 

 

 

 

在MD5算法中,首先需要将信息进行填充,使其位长对512求余后的结果等 于448 。即使符合上述条件,也必须进行填充。因此,信息的位长将被扩展至

N × 512+448 ,N是一个非负整数。计算原始消息的长度(不包含填充部分),并 且附加到填充位与消息之后。该长度值为64位二进制数表示的填充前信息的长  度。

2.信息分组

首先将数据按每512位为一组进行分组,如图6-14所示,再把每组里面分成16 个32位数据。

36bbb54a5f5a44a18297a051edad92f4.png

图6-14    将输入分组

3.初始化变量

初始化四个链接变量A 、B 、C 、D ,它们都是32位的数字,这些链接变量的 初始十六进制数值如下所示,低字节在前:

02ed353eaa52478caf45f4be8c647262.png

当设置好这四个链接变量后,就开始进入算法的四轮循环运算。将上面四个 链接变量复制到另外四个变量中:A到a ,B到b ,C到c ,D到d。

主循环有四轮,每轮循环都很相似,每一轮进行16次操作。每次操作对a、

b 、c和d的其中三个进行一次非线性函数运算,然后将所得结果加上第四个变量、 信息的一个子分组和一个常数,再将所得结果左移一个不确定的数,并加上a、

 

 

 

 

b 、c 、d之一。

以下是四轮循环中用到的四个非线性函数(每轮一个):

10bf869f63854565af04badb21cd3a53.png

所有这些操作完成之后,将A 、B 、C 、D分别加上a 、b 、c 、d ,然后用下一 分组的数据继续运行算法,最后MD5算法产生128位的输出是A 、B 、C 、D的级 联,其中低字节始于A ,高字节终于D 。至此,整个MD5算法处理结束。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/369632.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【lesson9】高并发内存池Page Cache层释放内存的实现

文章目录 Page Cache层释放内存的流程Page Cache层释放内存的实现 Page Cache层释放内存的流程 如果central cache释放回一个span,则依次寻找span的前后page id的没有在使用的空闲span,看是否可以合并,如果合并继续向前寻找。这样就可以将切…

oracle数据库索引失效情况总结

场景: 在开发中有时候遇到某个表中的列明明是创建了索引,但查询时却发现索引失效。 环境: 下面是工作流activiti中的两张表act_hi_procinst、act_hi_taskinst关系是一对多(一个流程包含多个流程环节),一个…

【乳腺肿瘤诊断分类及预测】基于自适应SPREAD-PNN概率神经网络

课题名称:基于自适应SPREAD-PNN的乳腺肿瘤诊断分类及预测 版本日期:2023-06-15 运行方式: 直接运行PNN0501.m 文件即可 代码获取方式:私信博主或QQ:491052175 模型描述: 威斯康辛大学医学院经过多年的收集和整理&…

使用Python和HTTP代理进行API请求

Python,这个简单易学又功能强大的编程语言,在网络爬虫、数据分析、自动化任务等领域都有着广泛的应用。而当我们需要从外部网站获取数据时,API(应用程序接口)就成了我们的得力助手。但有时候,某些网站会对A…

机器学习_15_贝叶斯算法

文章目录 1 贝叶斯定理相关公式2 朴素贝叶斯算法2.1 朴素贝叶斯算法推导2.2 朴素贝叶斯算法流程 3 高斯朴素贝叶斯4 伯努利朴素贝叶斯5 多项式朴素贝叶斯6 贝叶斯网络6.1 最简单的一个贝叶斯网络6.2 全连接贝叶斯网络6.3 “正常”贝叶斯网络6.4 实际贝叶斯网络:判断…

陪女朋友学习计算机二级之数据库笛卡尔积和自然连接

数据库中的基本关系运算 交 和数学中的交集类似,但是需要相同的表模式 如果俩个表有相同的关系模式如表1为(ID,姓名,学号)表2为ID,姓名,学号) 表1 表2 交之后就可以变成 并 和数…

SpringBoot数据访问复习

SpringBoot数据访问复习 数据访问准备 引入jdbc所需要的依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jdbc</artifactId></dependency> 原理分析 导入的启动器引入了两个…

计算机软件能力认证考试CCF-202312-1 仓库规划

#自己跑的测试没问题&#xff0c;不知道为啥就是不能满分 原理比较绕&#xff0c;就是让数组中一行不断地与其他行进行比较&#xff0c;最终得到各自的索引 #include <iostream> using namespace std; int main() {int n;int m;cin>>n>>m; int array[n][m];…

点击图形查看

使用zabbix查看监控图像信息&#xff0c;发现会有中文乱码现象。 解决方法如下&#xff1a; 1.拷贝windows文字文件到服务器上 C:\Windows\Fonts目录下拷贝自己需要的中文语言文件 2.修改配置文件 vim /usr/share/zabbix/include/defines.inc.php 81行 define(ZBX_GRAPH_F…

iview DatePicker 日期选择组件在弹窗中使用transfer,导致选择日期弹窗会关闭的问题

背景&#xff1a;在弹窗里面使用日期选择组件&#xff0c;选择组件的面板被弹窗遮挡了部分&#xff0c;所以需要使用transfer属性&#xff0c;但是使用之后组件面板插入body中了&#xff0c;面板的事件会导致弹窗关闭。 解决方案&#xff1a; 添加上transfer属性和指定的date-…

高级FPGA开发之基础协议PCIe

基础协议之PCIe部分 一、TLP包的包头 在PCIe的系统中&#xff0c;tlp包的包头的结构有许多部分是相似的&#xff0c;通过掌握这些常规的包头&#xff0c;能帮助理解在PCIe总线上各个设备之间如何进行数据的收发。 通用的字段 通用字段作用Fmt决定了包头是3DW还是3DW&#xff…

软件测试学习笔记-测试用例的编写

7中测试分类 按照阶段可划分单元测试、集成测试、系统测试、验收测试。代码可见度划分黑盒测试、灰盒测试、白盒测试 单元测试&#xff1a;针对源代码的测试 集成测试&#xff1a;针对接口进行测试 系统测试&#xff1a;针对功能和非功能的测试 验收测试&#xff1a;公测、内测…

中科方德桌面操作系统的安装方法

原文链接&#xff1a;中科方德桌面操作系统的安装方法 大家好&#xff01;继我们之前介绍了如何在VMware Workstation上安装统信UOS、麒麟OS及麒麟信安操作系统之后&#xff0c;今天我为大家带来一篇全新的教程——在VMware Workstation上安装中科方德桌面操作系统的详细步骤。…

《云原生安全攻防》-- 容器安全风险分析

在本节课程中&#xff0c;我们将提供一个全面的视角&#xff0c;来深入探讨容器环境下的安全风险&#xff0c;帮忙大家建立起容器环境下安全风险的整体认知。 在这个课程中&#xff0c;我们将学习以下内容&#xff1a; 容器技术概述&#xff1a;什么是容器技术以及它解决了什么…

task2:Verilog编写的设计模块在模块内部直接调用task

Verilog编写的设计模块在模块内部直接调用task 1&#xff0c;概念2&#xff0c;模块设计2.1&#xff0c;RTL设计2.2&#xff0c;tb测试代码2.3&#xff0c;sim仿真输出 参考文献&#xff1a; 1&#xff0c;练习七-在Verilog中使用任务task 1&#xff0c;概念 在模块设计中&…

【Docker进阶】镜像制作-用快照制作Docker镜像

进阶一 docker镜像制作 文章目录 进阶一 docker镜像制作1. 镜像制作及原因2. Docker镜像制作的方式3. 快照制作镜像 1. 镜像制作及原因 镜像制作是因为某种需求&#xff0c;官方的镜像无法满足需求&#xff0c;需要我们通过一定手段来自定义镜像来满足要求。 制作镜像往往有…

STM32--SPI通信协议(2)W25Q64简介

一、W25Q64简介 1、W25Qxx中的xx是不同的数字&#xff0c;表示了这个芯片不同的存储容量&#xff1b; 2、存储器分为易失性与非易失性&#xff0c;主要区别是存储的数据是否是掉电不丢失&#xff1a; 易失性存储器&#xff1a;SRAM、DRAM&#xff1b; 非易失性存储器&#xff…

0基础学习VR全景平台篇第141篇:如何制作卫星航拍全景

大家好&#xff0c;欢迎观看蛙色官方系列全景摄影课程&#xff01; 很多人都看过或者拍摄过航拍全景&#xff0c;其效果相比于普通的地拍的确有着更加震撼的拍摄效果&#xff0c;但是受限于无人机高度&#xff0c;以及禁飞区等等限制&#xff0c;导致很多大场景无法展示完全&a…

DS18B20温度传感器

文章目录 一、介绍DS18B20了解DS18B20引脚及电路图内部结构框图存储器结构单总线&#xff08;1 wire bus&#xff09;介绍单总线电路规范单总线时序结构初始化发送一个数据接收一位数据发送一个字节与接收一个字节 DS18B20操作流程所要使用的数据帧温度存储格式 二、实现温度检…

大数据信用报告在线查询平台哪个好?

随着大数据技术在金融风控的运用&#xff0c;大数据信用越来越被人熟知&#xff0c;由于线下没有查询大数据信用的地方&#xff0c;想要查询大数据信用报告只有在线上查询&#xff0c;那大数据信用报告在线查询平台哪个好呢?本文贷你一起去了解市面上比较好的三个平台。 大数据…