HmacSHA1签名算法 JAVA实现
2021/7/27 14:06:25
本文主要是介绍HmacSHA1签名算法 JAVA实现,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
package util; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.util.Formatter; public class HMAC { /** * HMAC_SHA1 签名 * @param content 待签名内容 * @param key 签名Key * @return */ public static String hmacsha1(String content, String key) { return getHmacSign(content, "UTF-8", key, "HmacSHA1"); } /** * MAC签名 * @param content 待签名内容 * @param charset 编码 * @param key 签名Key * @param hamaAlgorithm Mac算法 * @return */ public static String getHmacSign(String content, String charset, String key, String hamaAlgorithm) { String result = null; try { //根据给定的字节数组构造一个密钥,第二参数指定一个密钥算法的名称 SecretKeySpec signinKey = new SecretKeySpec(key.getBytes(charset), hamaAlgorithm); //生成一个指定 Mac 算法 的 Mac 对象 Mac mac = Mac.getInstance(hamaAlgorithm); //用给定密钥初始化 Mac 对象 mac.init(signinKey); //完成 Mac 操作 byte[] rawHmac = mac.doFinal(content.getBytes(charset)); result = toHexString(rawHmac); } catch (NoSuchAlgorithmException e) { System.err.println(e.getMessage()); } catch (InvalidKeyException e) { System.err.println(e.getMessage()); } catch (IllegalStateException e) { System.err.println(e.getMessage()); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } if (null != result) { return result; } else { return null; } } private static String toHexString(byte[] bytes) { Formatter formatter = new Formatter(); for (byte b : bytes) { formatter.format("%02x", b); } return formatter.toString(); } }
这篇关于HmacSHA1签名算法 JAVA实现的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-19JAVA分布式id教程:轻松入门与实践
- 2024-11-19Java高并发教程:入门与实践指南
- 2024-11-19JAVA高并发直播教程:新手入门指南
- 2024-11-19Java高并发直播教程:入门与实践指南
- 2024-11-19Java微服务教程:初学者快速入门指南
- 2024-11-19JAVA微服务教程:新手入门的详细指南
- 2024-11-19Java微服务教程:从零开始搭建你的第一个微服务应用
- 2024-11-19Java项目开发教程:初学者必备指南
- 2024-11-19Java项目开发教程:新手快速入门指南
- 2024-11-19Java项目开发教程:零基础入门到实战