MD5加密算法简介 (转)

MD5加密算法简介 (转)[@more@]

MD5加密算法简介

一、算法实现(转载自绿色兵团)
1、MD5算法是对输入的数据进行补位,使得如果数据位长度LEN对512求余的结果
是448。
  即数据扩展至K*512+448位。即K*64+56个字节,K为整数。
  具体补位操作:补一个1,然后补0至满足上述要求 
2、补数据长度:
  用一个64位的数字表示数据的原始长度B,把B用两个32位数表示。这时,数据
就被填
  补成长度为512位的倍数。
3. 初始化MD5参数 
  四个32位整数 (A,B,C,D) 用来计算信息摘要,初始化使用的是十六进制表示
的数字
  A=0X01234567
  B=0X89abcdef
  C=0Xfedcba98
  D=0X76543210 
4、处理位操作函数 
  X,Y,Z为32位整数。
  F(X,Y,Z) = X&Y|NOT(X)&Z
  G(X,Y,Z) = X&Z|Y¬(Z)
  H(X,Y,Z) = X xor Y xor Z
  I(X,Y,Z) = Y xor (X|not(Z)) 
5、主要变换过程:
  使用常数组T[1 ... 64], T[i]为32位整数用16进制表示,数据用16个32位的

  数数组M[]表示。
  具体过程如下: 
/* 处理数据原文 */
For i = 0 to N/16-1 do 
/*每一次,把数据原文存放在16个元素的数组X中. */
For j = 0 to 15 do
Set X[j] to M[i*16+j].
end  /结束对J的循环
/* Save A as AA, B as BB, C as CC, and D as DD. */
AA = A
BB = B
CC = C
DD = D 
/* 第1轮*/
/* 以 [abcd k s i]表示如下操作
a = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s). */
/* Do the following 16 operations. */
[ABCD 0 7 1] [DABC 1 12 2] [CDAB 2 17 3] [BCDA 3 22 4]
[ABCD 4 7 5] [DABC 5 12 6] [CDAB 6 17 7] [BCDA 7 22 8]
[ABCD 8 7 9] [DABC 9 12 10] [CDAB 10 17 11] [BCDA 11 22 12]
[ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16] 
/* 第2轮* */
/* 以 [abcd k s i]表示如下操作
a = b + ((a + G(b,c,d) + X[k] + T[i]) <<< s). */
/* Do the following 16 operations. */
[ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20]
[ABCD 5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24]
[ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28]
[ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32] 
/* 第3轮*/
/* 以 [abcd k s i]表示如下操作
a = b + ((a + H(b,c,d) + X[k] + T[i]) <<< s). */
/* Do the following 16 operations. */
[ABCD 5 4 33] [DABC 8 11 34] [CDAB 11 16 35] [BCDA 14 23 36]
[ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 16 39] [BCDA 10 23 40]
[ABCD 13 4 41] [DABC 0 11 42] [CDAB 3 16 43] [BCDA 6 23 44]
[ABCD 9 4 45] [DABC 12 11 46] [CDAB 15 16 47] [BCDA 2 23 48] 
/* 第4轮*/
/* 以 [abcd k s i]表示如下操作
a = b + ((a + I(b,c,d) + X[k] + T[i]) <<< s). */
/* Do the following 16 operations. */
[ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52]
[ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56]
[ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60]
[ABCD 4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64] 
/* 然后进行如下操作 */
A = A + AA
B = B + BB
C = C + CC
D = D + DD 
end /* 结束对I的循环*/
6、输出结果。


  以上代码来自: 源代码数据库(sourceDataBase)
  当前版本: 1.0.423
  作者: Shawls
  个人主页: .NET">Http://Shawls.Yeah.Net
  E-MailShawFile@163.Net
  qq: 9181729


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-992065/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752043/viewspace-992065/

iOS 加密算法MD5加密使用 软件开发过程中,对数据进行加密是保证数据安全的重要手段,常见的加密有Base64加密MD5加密。Base64加密是可逆的,MD5加密目前来说一般是不可逆的。我们在开发一款iOS App过程中,对于发送的请求,其中有个“sign”的字段,这个key对应的value是MD5加密的字段。 MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。 阅读详情

相关推荐

MD5、Base64加密算法吗?

常用的对称加密算法:DES、AES、3DES、RC2、RC4 常用的非对称加密算法:RSA、DSA、ECC 单向散列函数加密算法MD5、SHA 1、MD5 MD5是哈希算法的一种,可以将任意数据产生出一个128(16字节)的散列值,用于确保信息传输完整一致。 md5(hello world,32) = 5eb63bbbe01eeed093cb22bb8f5acdc3 我们常在注册登录块使用MD5,用户密码经过MD5加密后存入数据库。 这样用户在登录的候,密码经过MD5加密后再与数据

沐雨金鳞 2222

MD5 加密算法详解

MD5的概念 MD5算法是单向散列算法的一种。单向散列算法也称为HASH算法,是一种将任意长度的信息压缩至某一固定长度(称之为消息摘要)的函数(该压缩过程不可逆)。在MD5算法中,这个摘要是指将任意数据映射成一个128长的摘要信息。并其是不可逆的,即从摘要信息无法反向推演中原文MD5算法最终生成的是一个128长的数据,从原理上说,有2^128种可能,这是一个非常巨大的数据,...

Mr.小强的博客 7279

硬件工程师的破局之路:为何你才是考取软考高级架构师的“天选之子”?

硬件工程师如何型系统架构师:独特优势与实战路径 文章揭示了硬件工程师在考取系统架构设计师证书的独特优势。作者指出,硬件工程师的全局思维、接口设计能力和可靠性经验正是系统架构的核心要素。通过将硬件经验升维为架构思维(从引脚到接口、从单板到系统、从实现到权衡),硬件背景反而成为竞争优势。文章建议通过知识补全、建立架构决策日志和术语换练习来备考,并强调硬件工程师在软硬协同代的独特价值——既能统领硬件设计,又能为软件搭建最佳舞台。文末鼓励硬件工程师以更高视野看待职业发展,将系统架构师认证视为水到渠成的职业升

云轩阁 492

MD5加密算法解析

MD5算法详解

youcancallmean的博客 1093

MD5算法全解析

前言 这段间刚好正在做软件安全的实验和课设,学习了各种加密算法,比如对称加密算法的DES,AES;非对称加密算法的RSA,再如今天要讲的主角-单向加密算法MD5。为什么这么多算法,MD5成为了今天的猪脚呢?,这是因为个人感觉在目前Android开发中MD5算是比较常用的,所以很值得一讲。所以今天让我带你们来全面认识我们的主角MD5。 一、基本概念 1. 单向加密算法 在介绍MD5算法前,很有必...

jsyjst的博客 9907

md5加密算法

理解md5

LUOZONGW的博客 9684

MD5加密算法详解与实现

MD5加密算法详解与实现

weixin_51288065的博客 913

MD5加密算法和BCrypt密码加密算法

本文对比分析了MD5与bcrypt两种常见的密码加密算法MD5由于计算速度快缺乏足够的安全性,已经逐渐被弃用,尤其在密码存储领域。相对而言,bcrypt算法通过加盐和多次迭代机制,显著提高了密码的抗破解能力,适合用于高安全性要求的场景。文章详细探讨了两者的工作原理、优缺点以及实际应用中的安全性表现,以供读者按照需求来使用这两种加密算法

m0_65100923的博客 3595

MD5加密算法

信息摘要算法。一种被广泛使用的密码散列函数,可以产生出一个128(16字节)的散列值,用于确保信息传输完整一致。MD5由美国密码学家 罗纳德·李维斯特 设计,于1992年公开。这套算法的程序在 RFC 1321 标准中被加以规范。

浅笑醉红楼 8327

MD5加密算法简介

MD5加密算法简介一、算法实现(载自绿色兵团) 1、MD5算法是对输入的数据进行补,使得如果数据长度LEN对512求余的结果 是448。    即数据扩展至K*512+448。即K*64+56个字节,K为整数。    具体补操作:补一个1,然后补0至满足上述要求   2、补数据长度:    用一个64的数字表示数据的原始长度B,把B用两个32表示。这,数据 就被填    补成

shawls的专栏 1658

Java 实现 MD5 加密算法

MD5 消息摘要算法,英文:MD5 Message-Digest Algorithm ,一种被广泛使用的密码散列函数,可以产生出一个128(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5 是单向加密不可逆的,也就是常说的非对称加密,常用于用户密码的加密,这样即使密码泄露也不知道对应的明文信息,有效的保护系统和用户的隐私信息。MD5 算法产生的是一个 128 的散列值,128 是指的二进制中的 128 ,具体占 16 字节(每个字节可以表示为 8 二进制数)。

grammer_du的博客 8064

MD5加密算法(python)

MD5加密算法属于单向加密算法。 单向加密算法是中在加密过程中不适应秘钥,将数据加密处理成加密数据,加密数据无法被解密。因为无法通过加密数据反向得到原来的内容,单向加密算法又被称为不可逆加密算法。单向加密算法一般使用哈希算法来生成密文,又称为哈希加密算法。 由于MD5具有不可逆解密的特性,它被广泛应用于密码验证和数据完整性的验证。在使用,一般将新注册用户的密码通过MD5加密后存储到数据库中,当用户登录,通过验证MD5来检查用户输入密码的正确性。 #!/usr/bin/python import

乐以风的博客 4251

[]MD5简介

MD5 目录·MD5简介 ·算法的应用 ·算法描述 ·具体的一个MD5实现 ·一些破解MD5的网站 ...

weixin_30824277的博客 4923

MD5加密概述,原理及实现

消息分以512为一分组进行处理,每一个分组进行上述4轮共64次计算后,将A,B,C,D分别加上计算得到的a,b,c,d。当做新的A,B,C,D,并将这4个变量赋值给a,b,c,d再进行下一分组的运算。把常用的密码先MD5处理,并将数据存储起来,然后跟需要查询的MD5结果匹配,这就有可能通过匹配的MD5得到明文,所以有些简单的MD5码是反查到加密原文的。(初次使用的a,b,c,d为A,B,C,D的值,而Mi,s,tj根据下面的数值进行使用,可认为是常量,)每轮使用FF,GG,HH,II中的一种操作;

weixin_69965075的博客 3742

MD5加密算法详解

一. 引言 对于软件研发人员来说 MD5 不是一个陌生的词汇,平的软件研发中,经常使用 MD5 校验消息是否被篡改、验证文件完整性,甚至将MD5当作加密算法使用。 MD5虽不陌生,但不是所有研发人员都了解其算法原理,通过这篇文章详细学习MD5 摘要算法。 认识 MD5 掌握 MD5 算法原理 编码实现 MD5 摘要算法 使用Java开发语言 编码实现MD5摘要算法 二. MD5简介 MD5全称Message Digest Algorithm 5,翻译过来就是:消息摘要算法第5版,是计算机安全领域广泛使

景川的博客 2600

MD5数据加密方法

什么场景需要使用数据加密呢?比如秘密数据传输、用户密码加密存储等等数据传输可使用密钥对的方式进行加密解密,使用签名方式验证数据是否可靠,而密码加密存储可使用MD5等一些算法对数据进行单向加密

weixin_52115456的博客 2万+

JAVA 实现MD5加密算法

JAVA实现MD5加密算法

Sean的博客 5085

MD5加密

MD5加密

听海的博客 9304

各种加密算法简介(如MD5、SHA-256源码实现)

讲解各种加密算法,如MD5、SHA-256,还附上源码实现

bigger_belief的博客 5145

Vue2 - 实现全景图Vr 720°全景效果查看预览功能,3D全景图流畅不卡顿渲染+手势拖拽+悬浮工具按钮,vue实现vr看720度全景效果方案讲解及示例代码(兼容电脑PC网页+手机H5移动端页面)

vue全景VR图,vue h5实现全景720预览,vue加载720全景图_vue怎么加载vr图片,vue实现vr全景看房,vue2实现全景效果,加载很慢卡怎么办,实现全景预览的插件,vue显示720度全景图,720°全景图显示,在h5中展示720°全景图,浏览全景图,基于vue实现vr全景预览,加载全景图,vue全景预览pannellum插件,vue实现3D全景图,实现720°全景图展示,在VUE 中使用three.js实现全景视频播放,vue项目中使用photo-sphere-viewer实现vr720度

🏆 前端领域优质创作者 3286

Java基于区块链技术的农产品溯源平台系统完整源码+论文(可作毕设或课设).tar

【资源说明】Java基于区块链技术的农产品溯源平台系统完整源码+论文(可作毕设或课设).tarJava基于区块链技术的农产品溯源平台系统完整源码+论文(可作毕设或课设).tarJava基于区块链技术的农产品溯源平台系统完整源码+论文(可作毕设或课设).tarJava基于区块链技术的农产品溯源平台系统完整源码+论文(可作毕设或课设).tarJava基于区块链技术的农产品溯源平台系统完整源码+论文(可作毕设或课设).tarJava基于区块链技术的农产品溯源平台系统完整源码+论文(可作毕设或课设).tarJava基于区块链技术的农产品溯源平台系统完整源码+论文(可作毕设或课设).tarJava基于区块链技术的农产品溯源平台系统完整源码+论文(可作毕设或课设).tarJava基于区块链技术的农产品溯源平台系统完整源码+论文(可作毕设或课设).tar【备注】1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及沟通交流。2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。3、用途:项目具有较高的学习借鉴价值,也适用于小白学习入门进阶。当然也可作为毕设项目、课程设计、大作业、初期项目立项演示等。4、如果基础还行,或者热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。欢迎下载,沟通交流,互相学习,共同进步!

上一篇: 打造中文版Eclipse (转)
下一篇: Duwamish 7 初探——数据流程 (转)
csd3176
博客等级 码龄11年 20粉丝 0原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值