HMAC算法

news2024/9/21 2:43:58

在这里插入图片描述

在这里插入图片描述


HMAC

HMAC可以用来加密、数字签名、报文验证等。


在这里插入图片描述

1. 消息认证码

消息认证码(Message Authentication Code,MAC)是基于消息和秘钥的公开函数,输出为定长数据:

MAC=C(M,K)

假定通信双发共享秘钥K,发送方A向接收方B发送报文M并附上MAC,记为:

A→B:M||MAC

当B收到后,使用同样的秘钥K和M计算出MAC’。如果MAC=MAC’,则说明:

  • 接收的报文M没有被修改。

  • 接收的报文M是A所发送的。

MAC和加密类似,需要明文、秘钥、算法。但MAC算法不要求可逆性,而加密算法则要求可逆。


在这里插入图片描述

2. HMAC算法

Hash函数不使用秘钥,不能直接用于MAC。因为,直接发送的消息M和Hash结果h(M)一旦被截获,就能直接被攻击者伪造,变成M’和h(M’)发送出去。

Hash消息认证码(Hash-based Message Authentication Code,HMAC),是一种基于秘钥和散列函数进行消息认证的方法。它要求通信双方共享秘钥、约定算法、约定报文Hash运算(如MD5、SHA、SM3等)。

  • K为秘钥,K+ 则是在K左边填充若干0后,长度为b的数据块。(如果K是160比特,b=512,则需要在左边加352个0)。
  • ipad:b/8个00110110组成的字符串。
  • Y0Y1…YL-1:发送的消息M,M被划分为L个分组,分组长度为b比特。其中,Yi为其中的第i个分组(0≤i≤L-1)。Y0Y1…YL-1附在分组Si之后,记为Si||M。
  • IV:Hash函数输入的初始值。
  • Hash:选定的Hash算法(如MD5、SHA-1、SM3),输出的Hash值长度为n比特。
  • opad:b/8个01011100组成的字符串。

HMAC的整个运算过程可以描述如下:

  • HMACk=H[(K+ ⊕opad)||H[K+ ⊕ipad]]

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ubuntu22.04 成功编译llvm和clang 3.4.0,及 bitcode 函数名示例,备忘

1, 获取llvm 仓库 从github上获取: $ git clone --recursive https://github.com/llvm/llvm-project.git 2, 检出 llvmorg-3.4.0 tag 针对llvm 3.4.0版本,检出 $ cd llvm-project $ git tag $ git checkout llvmorg-3.4.0 3, 配置并编译llvm 使用 M…

ARK:《BIG IDEAS 2024》

Cathie Wood所带领的方舟投资(ARK)发布了年度重磅研究报告《BIG IDEAS 2024》,该报告指出人工智能、公共区块链、多组学测序、能源存储和机器人技术这五大板块的融合将带来全球经济活动的改变。 这五个创新平台正在融合并定义这个技术时代&am…

GoFrame:如何简单地搭建一个简单地微服务

一切资料来源于GoFrame官网, 感兴趣的, 可以直接去官网查阅相关资料。 首先下载框架工具, 下载地址:https://github.com/gogf/gf/releases 然后进入你想要放置的项目文件夹, 执行命令行 gf init {project_name} #pr…

插混、油混、增程式、轻混、强混,啥区别

这里写自定义目录标题 随着我国新能源汽车的大力推进,电车可以说是世界未来的主流,只不过现在是处在一个过渡时代 这是个好时代,因为我们见证并体验着历史过渡的细节 这是个不好的时代,因为我们可能只是未来新新人类的试验品 帮他…

微信小程序iOS禁止上下拉显示白边

先上图暴露出问题 iOS端这个页面明明正好显示的,非要能下拉上拉给显示出来点白边。这样不就不好看了嘛。。 想了想是不是支持页面下拉导致的,加入以下代码到json文件中。 {"enablePullDownRefresh": false,"usingComponents": {} }…

【k8s资源调度--DaemonSet】

1、什么是守护进程 有以下这样一个商品场景: 1、用户在商城查询商品信息,查询商品信息的时候需要登录用户,如果用户想要下单,需要提交到订单服务,最后下单完成后,需要更新仓库的商品数量信息。 2、如果每一…

mysql和redis双写一致性策略分析

mysql和redis双写一致性策略分析 一.什么是双写一致性 当我们更新了mysql中的数据后也可以同时保证redis中的数据同步更新; 数据读取的流程: 1.读取redis,如果value!null,直接返回; 2.如果redis中valuenull,读取mysql中数据对应的…

P2040 打开所有的灯

题目传送门:P2040 打开所有的灯 用深度优先搜索实现的一个填色题。 题目步骤: 1..dfs 首先dfs要判断是否符合题意,如果符合题意就更新最短路; 如果不符合题意就枚举 如果是关的就把周围四个包括 给标记上和原来相反的&#xf…

AI大预言模型——ChatGPT与AI绘图及论文高效写作

原文链接:AI大预言模型——ChatGPT与AI绘图及论文高效写作 2023年随着OpenAI开发者大会的召开,最重磅更新当属GPTs,多模态API,未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚于互联网…

python语言1

一、pytho中的注释 1.1注释的理解 程序员在代码中对代码功能解释说明的标注性文字可以提高代码的可读性注释的内容将被python解释器忽略,不被计算机执行 1.2注释的分类 注释分为:单行注释、多行注释、中文声明注释 (1)单行注…

计算机网络-网络互连和互联网(五)

1.路由器技术NAT: 网络地址翻译,解决IP短缺,路由器内部和外部地址进行转换。静态地址转换:静态NAT(一对一) 静态NAT,内外一对一转换,用于web服务器,ftp服务器等固定IP的…

大模型的智慧之源:图技术的崛起

自2023年以来,大语言模型(Large Language Models,LLMs)的兴起已经改变了科技行业的面貌。 科创公司如果不涉足这一领域,似乎就不好意思称自己是科技企业。 然而,随着大语言模型的普及,它固有的…

Linux高级编程:进程(三),线程(一)

进程的一生: execute: exec族 用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支), 子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程的 用户空间…

Python复合型数据避坑指南

目录 前言 列表(Lists) 1. 修改可变对象 2. 浅拷贝和深拷贝 元组(Tuples) 集合(Sets) 字典(Dictionaries) 1. 键值唯一性 2. 键的类型 实际应用场景 1. 数据分析与清洗 2. 网络…

微信小程序云开发教程——墨刀原型工具入门(安装以及基础使用教程)

引言 作为一个小白,小北要怎么在短时间内快速学会微信小程序原型设计? “时间紧,任务重”,这意味着学习时必须把握微信小程序原型设计中的重点、难点,而非面面俱到。 要在短时间内理解、掌握一个工具的使用&#xf…

Hgame题解(第二星期)

Hgame题解(第二星期) Web Select More Courses 打开靶机发现是一个登陆页面,根据题目提示下载弱密码字典,通过BP爆破获得用户密码为qwert123 登陆后进入下一个页面,由于学分已满无法选课,所以需要先进行…

仿牛客网项目---显示评论和添加评论功能的实现

这篇文章,我来介绍一下我的项目中的另外一个功能:显示评论和添加评论。 其实这两个功能都不怎么重要,我感觉最重要的应该是用户注册登录功能,这个也了解一下,知道这么一回事儿就好。 首先设计DAO层。 Mapper public …

【刷题】Leetcode 1609.奇偶树

Leetcode 1609.奇偶树 题目描述广度优先搜索(BFS)深度优先算法(DFS) 思路一(BFS)思路二(DFS)Thanks♪(・ω・)ノ谢谢阅读!!&a…

配置之道:深入研究Netty中的Option选项

欢迎来到我的博客,代码的世界里,每一行都是一个故事 配置之道:深入研究Netty中的Option选项 前言Option的基础概念ChannelOption与Bootstrap Option常见的ChannelOption类型ChannelConfig的使用Option的生命周期不同传输协议的Option 前言 在…

【MySQL】MySQL复合查询--多表查询自连接子查询 - 副本

文章目录 1.基本查询回顾2.多表查询3.自连接4.子查询 4.1单行子查询4.2多行子查询4.3多列子查询4.4在from子句中使用子查询4.5合并查询 4.5.1 union4.5.2 union all 1.基本查询回顾 表的内容如下: mysql> select * from emp; ----------------------------…