不可逆哈希算法-HMAC

一:百科

HMAC运算利用hash算法,以一个消息M和一个密钥K作为输入,生成一个定长的消息摘要作为输出。支持的算法包括:MD5,sha1、sha256、SM3等。是以HMAC-MD5,HMAC-SM3的HMAC-X命名。

二:目的

由于要求,需要使用HMAC-SM3来验证消息的完整性和真实性,确保数据在传输和存储过程中不被篡改。

三:测试

SM3不在Java标准库中,需要添加jar包

四:代码

public static String hmacSm3(String data,String key){

Digest digest=new SM3Digest();

HMac hmac=new HMac(digest);

hmac.init(new KeyParameter(key.getBytes()));

hmac.update(data.getBytes(StandardCharsets.UTF_8),0,data.getBytes().length);

byte[] hmac_sm3=new byte[hmac.getMacSize()];

hmac.doFinal(hmac_sm3, 0);

return Hex.toHexString(hmac_sm3);

}

相关推荐
rit843249910 分钟前
基于灰狼算法(GWO)优化支持向量回归机(SVR)参数C和γ的实现
c语言·算法·回归
蒋士峰DBA修行之路12 分钟前
实验五 静态剪枝
数据库·算法·剪枝
蒋士峰DBA修行之路15 分钟前
实验六 动态剪枝
数据库·算法·剪枝
Tim_1044 分钟前
【算法专题训练】20、LRU 缓存
c++·算法·缓存
B612 little star king1 小时前
力扣29. 两数相除题解
java·算法·leetcode
野犬寒鸦1 小时前
力扣hot100:环形链表(快慢指针法)(141)
java·数据结构·算法·leetcode·面试·职场和发展
时光追逐者1 小时前
C# 哈希查找算法实操
算法·c#·哈希算法
Jasmine_llq2 小时前
《P3825 [NOI2017] 游戏》
算法·游戏·枚举法·2-sat 算法·tarjan 算法·邻接表存储
Miraitowa_cheems2 小时前
LeetCode算法日记 - Day 38: 二叉树的锯齿形层序遍历、二叉树最大宽度
java·linux·运维·算法·leetcode·链表·职场和发展
wangzy19822 小时前
图形基础算法:如何将点与带曲线边的多边形位置关系算法做稳定
算法