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

}

相关推荐
柏箱1 小时前
容器里有10升油,现在只有两个分别能装3升和7升油的瓶子,需要将10 升油等分成2 个5 升油。程序输出分油次数最少的详细操作过程。
算法·bfs
Hello eveybody3 小时前
C++介绍整数二分与实数二分
开发语言·数据结构·c++·算法
Mallow Flowers5 小时前
Python训练营-Day31-文件的拆分和使用
开发语言·人工智能·python·算法·机器学习
GalaxyPokemon5 小时前
LeetCode - 704. 二分查找
数据结构·算法·leetcode
leo__5206 小时前
matlab实现非线性Granger因果检验
人工智能·算法·matlab
GG不是gg6 小时前
位运算详解之异或运算的奇妙操作
算法
FF-Studio8 小时前
万物皆数:构建数字信号处理的数学基石
算法·数学建模·fpga开发·自动化·音视频·信号处理·dsp开发
叶子爱分享9 小时前
从事算法工作对算法刷题量的需求
算法
勇闯IT9 小时前
有多少小于当前数字的数字
java·数据结构·算法
liuqun03199 小时前
开心灿烂go开发面试题
算法·leetcode·golang