更新时间:2025-08-18 15:33:03
本示例介绍如何利用 Java 代码实现 HMAC-SHA1 加密算法。
Java版本范例代码
/*** HMAC-SHA1加密方案<br>* @param content-要加密的内容* @param secretKey-密钥* @return HMAC_SHA1加密后的字符串*/publicstatic String HMACSHA1(String content, String secretKey) {try {byte[] secretKeyBytes = secretKey.getBytes();SecretKey secretKeyObj = new SecretKeySpec(secretKeyBytes, "HmacSHA1");Mac mac = Mac.getInstance("HmacSHA1");mac.init(secretKeyObj);byte[] text = content.getBytes("UTF-8");byte[] encryptContentBytes = mac.doFinal(text);// 通过SHA1算法获得的签名长度,都是160位的二进制码,转成16进制字符码串显示。String encryptContent = bytesToHexString(encryptContentBytes);return encryptContent;} catch (Exception e) {e.printStackTrace();}return content;}/*** 获取字节数组的16进制字符串形式表达<br>* 示例: 0xff->'ff'* @param bytes 字节数组* @return 16进制字符串的形式表达*/privatestatic String bytesToHexString(byte[] bytes) {StringBuilder hexString = new StringBuilder("");for(byte ib : bytes) {char[] Digit = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};char[] ob = newchar[2];ob[0] = Digit[(ib >>> 4) & 0X0f];ob[1] = Digit[ib & 0X0F];hexString.append(ob);}return hexString.toString();}