论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
移动端开发
›
深入解析消息认证码(MAC)算法:HmacMD5与HmacSHA1 ...
深入解析消息认证码(MAC)算法:HmacMD5与HmacSHA1
忿忿的泥巴坨
金牌会员
|
2024-7-13 08:44:58
|
显示全部楼层
|
阅读模式
楼主
主题
526
|
帖子
526
|
积分
1578
❃博主首页 :
<码到三十五>
☠博主专栏 :
<mysql高手>
<elasticsearch高手>
<源码解读>
<java焦点>
<面试攻关>
♝博主的话 :
<搬的每块砖,皆为峰峦之基;公众号搜刮(码到三十五)关注这个爱发技醒目货的coder,一起筑基>
引言
在密码学中,消息认证码(Message Authentication Code,简称MAC)是一种紧张的安全技能,用于确保消息的完整性和身份验证。它可以防止消息在传输过程中被篡改,同时验证消息发送者的身份。在本篇博客中,我们将详细探讨两种常见的MAC算法:HmacMD5和HmacSHA1。
一、消息认证码(MAC)简介
消息认证码(Message Authentication Code,简称MAC),是密码学中的一个关键概念,紧张用于确保信息在传输或存储过程中的完整性,同时提供对信息来源的身份验证。这是一种防止信息在未经授权的情况下被篡改的紧张本领。
MAC算法的焦点在于它采用了一种特定的加密方式,这种方式依赖于一个只有通信双方知道的密钥。这意味着,即使攻击者可以或许截获到传输的信息,只要他们没有这个密钥,就无法生成有效的MAC值,也无法对信息举行篡改而不被发现。
MAC的紧张特性包罗:
1. 完整性
:MAC能确保信息的完整性,即信息在传输或存储过程中没有被篡改。这是通过对比吸收到的MAC值和重新计算的MAC值来实现的。如果两者相同,那么信息就被认为是完整的。
2. 认证
:MAC能提供对信息来源的身份验证。因为只有知道密钥的实体才能生成有效的MAC值,以是吸收者可以通过验证MAC值来确认信息的来源。
3. 密钥依赖性
:MAC值的计算依赖于密钥,不同的密钥会产生不同的MAC值。这增加了攻击者伪造有效MAC值的难度。
MAC被广泛应用于网络通信、数据存储、电子商务等范畴,以掩护数据的安全性和可靠性。比方,在网络通信中,MAC可以防止数据被篡改或冒充,确保数据的完整性和真实性;在数据存储中,MAC可以防止数据被篡改或删除,掩护数据的完整性和可靠性;在电商中,MAC可以确保交易数据的完整性和真实性,防止数据被篡改或冒充,掩护用户的隐私和安全。
二、HmacMD5算法
HmacMD5是一种结合了密钥与MD5哈希函数的消息认证码(MAC)算法。它旨在通过引入密钥来增强MD5算法的安全性,从而提供数据的完整性和身份验证。HmacMD5广泛应用于网络通信和数据存储等范畴,以确保数据的机密性和完整性。
HmacMD5算法的工作原理
密钥处理
:
HmacMD5算法首先会对密钥举行处理,以确保其长度符合算法的要求。通常,密钥会被填充至64字节(512位)的长度。
如果密钥长度小于64字节,算法会在密钥的末尾填充0,直到达到所需的长度。
如果密钥长度大于64字节,算法会使用MD5哈希函数对密钥举行哈希处理,得到一个固定长度(16字节,128位)的哈希值,然后将其作为现实的密钥使用。
密钥划分
:
经过处理的密钥会被划分为两个等长的子密钥,分别称为K1和K2。
如果密钥是原始密钥的哈希值(16字节),则K1是原始密钥与ipad(一个特定的常量)的逐位异或结果,K2是原始密钥与opad(另一个特定的常量)的逐位异或结果。
消息处理
:
消息在举行哈希之前,通常会被划分为多个块,每个块的大小与MD5算法的输入块大小相同(64字节)。
对于末了一个大概不足64字节的块,需要按照特定的方式举行填充,以确保其长度达到64字节。填充的内容包罗一个“1”、多个“0”以及原始消息的长度(以64位二进制数表示)。
哈希计算
:
对于每个消息块,算法会将其与子密钥K1一起作为输入,计算出一个中间哈希值。这是通过将K1附加到消息块的前面或后面,并对整个输入应用MD5哈希函数来实现的。
然后,算法会取全部中间哈希值的串联(对于多个消息块的情况),与子密钥K2一起作为输入,举行另一次MD5哈希计算。最终得到的哈希值就是消息的HmacMD5值。
只管HmacMD5算法通过引入密钥增强了MD5算法的安全性,但MD5算法本身存在已知的缺点,如潜伏的碰撞性攻击风险。因此,在需要更高安全性的场景下,建议使用更安全的哈希函数和相应的Hmac算法,如HmacSHA256。
三、HmacSHA1算法
HmacSHA1是一种结合了密钥与SHA-1哈希函数的消息认证码(MAC)算法。与HmacMD5雷同,HmacSHA1旨在通过引入密钥来增强SHA-1算法的安全性,以提供数据的完整性和身份验证。由于SHA-1相较于MD5具有更高的安全性,HmacSHA1也被广泛认为是一种更安全的消息认证码算法。
HmacSHA1算法的工作原理
密钥处理
:
HmacSHA1算法首先会对密钥举行处理,以确保其长度符合算法的要求。通常,密钥会被填充至64字节(512位)的长度。
如果密钥长度小于64字节,算法会在密钥的末尾填充0,直到达到所需的长度。
如果密钥长度大于64字节,算法会使用SHA-1哈希函数对密钥举行哈希处理,得到一个固定长度(20字节,160位)的哈希值,然后将其作为现实的密钥使用。
密钥划分与填充
:
与HmacMD5雷同,处理后的密钥会被划分为两个等长的子密钥,但由于SHA-1的块大小是512位(64字节),这两个子密钥现实上是通过对原始密钥与特定的填充常量(如ipad和opad)举行异或运算得到的。
ipad(内部填充常量)和opad(外部填充常量)是特定的字节序列,用于与密钥举行异或运算,以生成两个新的密钥:K1(内部密钥)和K2(外部密钥)。
消息处理与哈希计算
:
消息在举行哈希之前,会被划分为多个块,每个块的大小与SHA-1算法的输入块大小相同(512位)。末了一个块大概需要按照特定的方式举行填充。
对于每个消息块,算法会将其与子密钥K1一起作为输入,举行SHA-1哈希计算,得到一个中间哈希值。
然后,算法会取全部中间哈希值的串联(对于多个消息块的情况),与子密钥K2一起作为输入,举行另一次SHA-1哈希计算。最终得到的哈希值就是消息的HmacSHA1值。
安全性思量
:
HmacSHA1算法结合了SHA-1哈希函数的不可逆性和密钥作为干扰项的特点,使得攻击者无法轻易伪造出有效的HmacSHA1值。即使攻击者截获了消息和对应的HmacSHA1值,没有密钥的情况下也无法对消息举行篡改而不被发现。
然而,需要留意的是,近年来对SHA-1的安全性也提出了一些质疑,特别是关于其潜伏的碰撞性攻击风险。固然在现实应用中尚未出现乐成的攻击案例,但为了安全起见,许多组织已经开始逐步镌汰SHA-1和HmacSHA1,转向使用更安全的哈希函数和相应的Hmac算法(如SHA-256和HmacSHA256)。
结语
消息认证码(MAC)算法是确保消息完整性和身份验证的紧张技能。HmacMD5和HmacSHA1作为两种常见的MAC算法,分别基于MD5和SHA-1哈希函数举行构建。固然HmacMD5和HmacSHA1在一定程度上进步了消息传输的安全性,但由于MD5和SHA-1自身存在的潜伏安全隐患,使得这两种算法在现实应用中大概面对一定的风险。因此,在选择消息认证码算法时,应优先思量使用基于更安全哈希函数的Hmac算法,以确保数据的安全传输。
听说...关注下面公众号的人都变牛了,纯技能,纯干货 !
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
忿忿的泥巴坨
金牌会员
这个人很懒什么都没写!
楼主热帖
Kubernetes(K8S) Controller - Deploym ...
springmvc异常处理解析#ExceptionHandl ...
day3 函数的定义和调用,练习编写简单 ...
[20221018]本地运行与远程运行.txt ...
MySQL 并行复制方案演进历史及原理分析 ...
Fireasy3 揭秘 -- 代码编译器及适配器 ...
axios 传递参数的方式(data 与 params ...
MySQL运维5-Mycat配置
【iOS逆向与安全】frida-trace入门 ...
隐匿自己的c2服务器(一)
标签云
挺好的
服务器
快速回复
返回顶部
返回列表