HMACSHA256加密算法 java实现

import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec;

public class HMACSHA256 { /** * 将加密后的字节数组转换成字符串 * * @param b 字节数组 * @return 字符串 */ public static String byteArrayToHexString(byte[] b) { StringBuilder hs = new StringBuilder(); String stmp; for (int n = 0; b != null && n < b.length; n++) { stmp = Integer.toHexString(b[n] & 0XFF); if (stmp.length() == 1) hs.append(0); hs.append(stmp); } return hs.toString().toLowerCase(); }

/** * sha256_HMAC加密 * * @param message 消息 * @param secret 秘钥 * @return 加密后字符串 */ public static String sha256_HMAC(String message, String secret) { String hash = ""; try { Mac sha256_HMAC = Mac.getInstance("HmacSHA256"); SecretKeySpec secret_key = new SecretKeySpec(secret.getBytes(), "HmacSHA256"); sha256_HMAC.init(secret_key); byte[] bytes = sha256_HMAC.doFinal(message.getBytes()); hash = byteArrayToHexString(bytes); } catch (Exception e) { System.out.println("Error HmacSHA256 ===========" + e.getMessage()); } return hash; } public static void main(String[] args) { String secret="aaa0711zzz"; System.err.println(sha256_HMAC(secret,"asd")); } }

输出:c6248891f19f33a0512f7b1b830f523cb6fc12797d6180881422abd2410d71a2

经验分享 程序员 微信小程序 职场和发展