MD5算法

简介

  MD5消息摘要算法(MD5 Message-Digest Algorithm),是一种被广泛使用的加密算法。该算法讲任意的输入处理之后,输出一个128位的数据指纹,理论上这个信息指纹是独一无二的,因此我们可以通过验证文件传输前后的MD5值是否一致来验证文件信息是否被篡改。

生成MD5的过程

MD5是以512位分组来处理输入的信息,每一个分组被划分为16个32位子分组,经过一系列处理之后,算法的输出变成了4个32位分组,将这4个分组组合,即得到一个128位的散列值,即MD5值,也就是我们的数据指纹。

(1)填充

  如果原始输入的bit长度对512取余的结果不是448,就需要进行填充,从而使得取余的结果是448,填充的方法是填充一个1和n个0,则填充完成之后,原始输入信息的bit长度变成了N*512+448。

(2)记录信息长度

  我们使用64bit来存储填充前的信息长度,则现在的长度变为了N*512+448+64=(N+1)*512。

(3)装幻数

  在这里我们需要装入四个标准幻数:

  A=(01234567)16,B=(89ABCDEF)16,C=(FEDCBA98)16,D=(76543210)16)。

可以转化为:   A=0X67452301L,B=0XEFCDAB89L,C=0X98BADCFEL,D=0X10325476L。

(4)四轮循环运算

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏desperate633

LintCode 最小路径和题目分析代码

给定一个只含非负整数的m*n网格,找到一条从左上角到右下角的可以使数字和最小的路径。

652
来自专栏简书专栏

基于tensorflow+RNN的MNIST数据集手写数字分类

tensorflow是谷歌google的深度学习框架,tensor中文叫做张量,flow叫做流。 RNN是recurrent neural network的简...

1743
来自专栏简书专栏

基于tensorflow+CNN的垃圾邮件文本分类

tensorflow是谷歌google的深度学习框架,tensor中文叫做张量,flow叫做流。 CNN是convolutional neural netwo...

5333
来自专栏应兆康的专栏

Aggomerative Clustering

所有观测对象先以自己为群组,满足特定准则的对象汇聚在一起。重复这个过程,群组不断增大,直到某个端点饱和。

890
来自专栏人人都是极客

TensorFlow极简入门教程

随着 TensorFlow 在研究及产品中的应用日益广泛,很多开发者及研究者都希望能深入学习这一深度学习框架。本文介绍了TensorFlow 基础,包括静态计算...

1594
来自专栏简书专栏

基于tensorflow+DNN的MNIST数据集手写数字分类预测

DNN是deep neural network的简称,中文叫做深层神经网络,有时也叫做多层感知机(Multi-Layer perceptron,MLP)。 从...

3353
来自专栏lhyt前端之路

js随机数生成器的扩展0.前言1.扩展+分区2.二进制法3. 总结

给你一个能生成随机整数1-7的函数,就叫他生成器get7吧,用它来生成一个1-11的随机整数,不能使用random,而且要等概率。

871
来自专栏大学生计算机视觉学习DeepLearning

手指静脉细化算法过程原理解析 以及python实现细化算法

1774
来自专栏简书专栏

基于tensorflow的一元二次方程回归预测

安装tensorflow命令:pip install tensorflow 下面一段代码能够成功运行,则说明安装tensorflow环境成功。

2133
来自专栏简书专栏

基于tensorflow+RNN的新浪新闻文本分类

tensorflow是谷歌google的深度学习框架,tensor中文叫做张量,flow叫做流。 RNN是recurrent neural network的简...

3283

扫码关注云+社区

领取腾讯云代金券