密码学入门——HMAC

news/2024/10/30 13:29:25/

文章目录

    • 一、什么是HMAC
    • 二、HMAC的步骤

一、什么是HMAC

HMAC是一种使用单向散列函数来构造消息认证码的方法(RFC2104),其中 HMAC的H就是Hash的意思。

HMAC 中所使用的单向散列函数并不仅限于一种,任何高强度的单向散列函数都可以被用于HMAC,如果将来设计出新的单向散列函数,也同样可以使用。

使用SHA-1、SHA-224、SHA-256、SHA-384、SHA-512所构造的HMAC,分别称为HMAC-SHA1、HMAC-SHA-224、HMAC-SHA-256、HMAC-SHA-384、HMAC-SHA-512。

二、HMAC的步骤

在这里插入图片描述
下面是 HMAC 的步骤:

  1. 选择一个适当的哈希函数 H,通常使用 SHA-256、SHA-384 或 SHA-512 等安全的哈希函数。
  2. 确定一个密钥 K,长度可以是任意值。如果密钥长度不足 H 函数的输入块长度,则需要对密钥进行填充。
  3. 对密钥进行预处理。如果密钥长度超过 H 函数的输入块长度,则需要将 K 哈希成 H 函数的输出长度。
  4. 对消息 M 进行填充,使其满足 H 函数的输入块长度要求。
  5. 将处理后的密钥 K 和填充后的消息 M 输入到 HMAC 算法中。
  6. HMAC 算法根据以下公式计算哈希值:
    HMAC(K, M) = H((K ⊕ opad) || H((K ⊕ ipad) || M))
    其中,“||”表示拼接,opad 和 ipad 是固定的填充值,分别为 0x5c 和 0x36。
    输出 HMAC 值作为消息的认证码。

注意,为了提高安全性,每个消息都应该使用不同的密钥。如果多个消息使用相同的密钥,则可能会存在安全隐患。


http://www.ppmy.cn/news/841704.html

相关文章

Spring Cache (基础知识+瑞吉外卖项目)

Spring Cache 基本介绍 Spring Cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。 Spring Cache提供了一层抽象,底层可以切换不同的cache实现。具体就是通过CacheManager接口来统一不同的缓…

22春天津大学《钢筋混凝土结构(1)》在线作业1

22春天津大学《钢筋混凝土结构(1)》在线作业1-0001 第1题,当其他条件完全相同,根据钢筋面积选择钢筋直径和根数时,对裂缝有利的选择是( )。A、较粗的变形钢筋;B、较粗的光面钢筋;C、较细的变形钢筋&#…

建筑施工技术【11】

1.常温下砌筑砌块墙体时,铺灰长度最多不宜超过()。 A.5m B.1m C.3m D.7m 2.下列哪一项不属于“三一”砌砖法的特点。 A.一铺灰 B.一块砖 C.一铲灰 D.一揉压 3.现浇混凝土结构模板拆除顺序正确的是 A.跨度4m及4m以上的梁下均应保留支柱&a…

2022电大国家开放大学网上形考任务-桥梁工程技术非免费(非答案)

桥梁工程技术形考任务一答案 一、判断题 题目:沉井既是一种基础形式,又是一种施工方法 题目:沉井下沉主要依靠自身重量下沉 题目:打入桩施工,打桩初期应轻击慢打 题目:刚架桥是一种桥跨结构和墩、台结构整体相连的桥梁…

建筑施工技术【7】

1.地下连续墙采用泥浆护壁的方法施工时,泥浆的作用是()。 A.降压 B.护壁 C.润滑 D.携砂 E.冷却 2.按成孔方法不同,混凝土灌注桩分为()。 A.静压沉桩 B.人工挖孔灌注桩 C.钻孔灌注桩 D.爆扩灌注桩 E.沉管…

建筑材料【10】

1.对干燥环境中的工程,应优先选用() A.粉煤灰水泥 B.普通水泥 C.矿渣水泥 D.火山灰水泥 2.水泥试气硬性胶凝材料 3.建筑石膏的抗压强度,比下列材料中的()高 A.花岗岩 B.石灰 C.烧结砖 D.水泥 4.在生产水泥时必须掺入适量石膏是为了(&…

建筑材料【9】

1.将一批混凝土试件,经养护至此28天后分别测得其养护状态下的平均抗压强度为23Mpa,干燥状态下的平均抗压强度为25Mpa,吸水饱和状态下的平均抗压强度为22Mpa,则其软化系数为() A.0.13 B.0.88 C.0.96 D.0.92…

2022年一级建造师港口与航道工程考试模拟试题卷及答案

题库来源:优题宝公众号,2022年一级建造师港口与航道工程考试模拟试题卷及答案,根据最新一级建造师港口与航道工程考试大纲与历年一级建造师港口与航道工程考试真题汇总编写,包含一级建造师港口与航道工程考试常考重点题型与知识点…