不可逆哈希算法-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);

}

相关推荐
roman_日积跬步-终至千里29 分钟前
【后端基础】布隆过滤器原理
算法·哈希算法
若兰幽竹43 分钟前
【机器学习】多元线性回归算法和正规方程解求解
算法·机器学习·线性回归
鱼力舟1 小时前
【hot100】240搜索二维矩阵
算法
北_鱼2 小时前
支持向量机(SVM):算法讲解与原理推导
算法·机器学习·支持向量机
MZWeiei4 小时前
PTA:运用顺序表实现多项式相加
算法
GISer_Jing4 小时前
Javascript排序算法(冒泡排序、快速排序、选择排序、堆排序、插入排序、希尔排序)详解
javascript·算法·排序算法
cookies_s_s4 小时前
Linux--进程(进程虚拟地址空间、页表、进程控制、实现简易shell)
linux·运维·服务器·数据结构·c++·算法·哈希算法
不想编程小谭5 小时前
力扣LeetCode: 2506 统计相似字符串对的数目
c++·算法·leetcode
水蓝烟雨5 小时前
[HOT 100] 2187. 完成旅途的最少时间
算法·hot 100
菜鸟一枚在这6 小时前
深度解析建造者模式:复杂对象构建的优雅之道
java·开发语言·算法