什么是消息验证码

article/2025/8/30 8:08:17

在信息安全领域中,常见的信息保护方法分为加密和认证两大类。认证技术又分为对用户的认证和对消息的认证两种方式。用户认证用于鉴别用户的身份是否是合法用户;消息认证就是验证所收到的消息确实是来自真实的发送方且未被修改的消息,可以验证消息的准确性。

消息认证实际上是对消息本身产生的一个冗余的信息,即消息验证码(MAC)。消息认证码(Message authentication code)是一种确认完整性并进行认证的一种技术,简称MAC。密码学中,消息认证码指的是通信实体双方使用的一种验证机制,保证消息数据完整性的一种工具。消息认证码是一种带密钥的哈希函数,它本质上是一个哈希函数,那为什么要带密钥呢?是因为消息在传输过程中是可以被篡改,哈希值也可以被篡改,因此为了保证这个哈希值的有效性,通过加密的方式将哈希值保护起来,这样在接收方接收到消息后就可以通过这个哈希值来判断整条消息的完整性,从而达到信息传递的目的。

消息认证码步骤如下图所示:

 

1)发送者与接收者事先共享密钥K(上图中的KEY1与KEY2值保持一致)。

2)发送者根据消息计算MAC值(使用密钥KEY1对原始消息计算MAC1)。

3)发送者将原始消息和MAC1发送给接收者。

4)接收者根据收到的原始消息计算MAC2(使用密钥KEY2)。

5)接收者将自己计算出的MAC2与从发送者收到的MAC1比对。

6)如果MAC一致,接收者可以判定消息的确来自接收者(认证成功)且没有被篡改或者出现传输出错的情况;如果不一致,可判断消息不是来自发送方(认证失败)。

 

注意:建议发送方和接收方将密钥KEY存放于硬件安全模块中,计算MAC值的过程最好也放到硬件安全模块中完成,这样可以保证密钥的安全,例如放到加密芯片中。


http://chatgpt.dhexx.cn/article/KgONsdBp.shtml

相关文章

登录信息验证

登录信息验证 本次挑战内容为设计一个登录验证程序,要求用户从控制台录入用户名和密码,若用户输入的信息正确则提示登录成功,反之则提示登录失败。 本次挑战内容为设计一个登录验证程序,要求用户从控制台录入用户名和密码&#x…

各种信息验证

开发工具与关键技术:VS 各种信息验证 作者:赖文扬 撰写时间:2019年6月25日在项目里面有很多信息要验证的,例如姓名验证(不能是数据)、电话信息验 证(7位数)、手机号信息验证(11位数)、身份证信息验证(15到18为身份 证号码验证)。一般项目里面就有这几种验证。现…

验证信息格式

验证:一、RequiredFieldValidator:非空验证ErrorMessage:验证出错时显示的错误信息ControlToValidate:要验证的控件IDDisplay:呈现模式。Static-静止,不显示也会占空间。Dynamic-动态,不显示不占…

正则表达式——验证信息

本文编写于 146 天前,最后修改于 146 天前,其中某些信息可能已经过时。 正则表达式: 正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一…

Sigrity 中Node Placement 和Via Placement Warning 问题的处理

Speed2000在导入PCB设计文件后,把PCB文件转换为SPD文件,转换成SPD文件之后,我们需要通过CC确认是否有短路等问题,如下图,可以在tool--》options--》edit options--》error checking 中找到这个窗口。 sigrity CC 文件检…

OpenStack Victoria搭建(七)安装并验证 Placement

介绍 ✔ 笔记 在 Stein 发布之前,放置代码与计算 REST API 代码 (nova-api) 一起在 Nova 中。确保本文档的发布版本与您要部署的发布版本匹配。 步骤概述 部署API服务 Placement 提供了一个placement-apiWSGI 脚本,用于使用 Apache、nginx 或其他支持 WS…

ICC2 user guide(二)Placement and Optimization

目录 一 Specifying Coarse Placement Constraints and Settings 1 Defining Keepout Margins 2 Defining Area-Based Placement Blockages 2.1 Defining a Placement Blockage 2.2 Define a Blockage of a Predefined Category

超详细Openstack核心组件——Placement部署

目录 OpenStack-Placement组件部署创建数据库实例和数据库用户创建Placement服务用户和API的endpoint 总结 OpenStack-Placement组件部署 继之前glance部署之后,继续部署Placement 创建数据库实例和数据库用户 [rootct ~]# mysql -uroot -p MariaDB [(none)]>…

OpenStack | Placement组件

🐼 Placement组件部署创建数据库实例和用户创建Placement服务用户和API的endpoint Placement 的安装与配置修改Apache配置文件 验证 Placement组件部署 openstack部署遵循以下顺序 创建数据库实例和用户 mysql -u root -p密码 create database placement;grant …

operator new与placement new

通常讲的new指的是new operator,使用new operator的时候,实际上执行了三个步骤: 1)调用operator new分配内存 ;2)调用构造函数生成类对象;3)返回相应指针。 分配内存这一操作是由operator new…

ICC II 2 placement

整个笔记比较长 建议搜索食用 placement的关键步骤 #mermaid-svg-gdanrmmgqcQiRsLU .label{font-family:trebuchet ms, verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-gdanrmmgqcQiRsLU .label text{fill:#333}#mermaid-svg-gdanr…

openstack placement

openstack placement posted on 2018-07-18 14:06 秦瑞It行程实录 阅读( ...) 评论( ...) 编辑 收藏 转载于:https://www.cnblogs.com/ruiy/p/9328845.html

OpenStack部署之Placement项目(7-4)

OpenStack部署之Placement项目(7-4) 一、Placement概述二、OpenStack-Placement组件部署1、创建数据库实例和数据库用户2、创建Placement服务用户和API的endpoint3、安装placement服务4、修改00-placemenct-api.conf配置文件5、测试访问和端口号6、总结 …

Placement service – placement安装(wallaby-allinone)

Placement service – placement安装(wallaby-allinone) 1 必须 在安装和配置放置服务之前,您必须创建数据库、服务凭证和 API 端点。 创建数据库 要创建数据库,请完成以下步骤: 使用数据库访问客户端以root用户身份…

Placement Rules 使用文档

注意 本文介绍如何手动在 Placement Driver (PD) 中设置 Placement Rules。推荐使用 Placement Rules in SQL,让你更方便地设置表和分区的放置。 Placement Rules 是 PD 在 4.0 版本引入的一套副本规则系统,用于指导 PD 针对不同类型的数据生成对应的调…

Placement Driver

目录 PD架构 路由功能 TSO分配 时间窗口 调度 Label 例题 PD架构 PD由至少三个节点组成,并集成了ETCD,支持自动故障转移,无需担心单点故障 ;同时ETCD raft 保证数据一致性 三个PD节点中有一个leader,当leader出…

Placement

程序功能:进入brd版图环境下的布局显示模式。 快捷键为:p或者P 布局模式,只显示器件的焊盘、器件外形丝印、ROUTE KEEPOUT铜皮、PACKAGE KEEPOUT铜皮和器件的PLACE_BOUND铜皮。

ICC图文流程——(三)布局Placement

ICC布局阶段 在布局规划阶段完成了芯片的整体规划,而布局阶段主要是软件自动的标准单元的摆放。 在布局开始之前,需要对设计进行确认和检查。 主要确认内容包括: 检查设计中的所有macro是否设置为dont_touch属性。在大多数情况下&#xff0…

想要彻底掌握placement各种技巧,这个一定可以如你所愿

想要彻底掌握placement各种技巧,这个一定可以如你所愿! 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点。点击进去后出现任何损失与社区无关。 大家应该也都知道最近小编在忙项目,而且是相当的忙,到处…

openstack 【T版】(四)——部署placement

openstack 【T版】(四)——部署placement 一、Placement概念二、OpenStack-Placement组件部署1.创建数据库实例和数据库用户2.创建placement用户、授权、创建placement服务3.注册API端口到placement的service中;注册的信息会写入到mysql中4.安…