Java代码实现 HmacSHA256加密

package com.uyou.common;

import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;

public class SecurityUtils {
    /// <summary>
    /// HmacSHA256加密
    /// </summary>
    /// <param name="data">要加密的数据</param>
    /// <param name="secretKey">密钥</param>
    /// <returns></returns>
    public static  String HmacSHA256Encrypt(String data, String secretKey) {
        try {
            // 初始化一个密钥
            SecretKeySpec secretKeySpec = new SecretKeySpec(secretKey.getBytes(), "HmacSHA256");

            // 获取Mac实例
            Mac mac = Mac.getInstance("HmacSHA256");
            mac.init(secretKeySpec);

            // 执行HMACSHA256加密
            byte[] encryptedBytes = mac.doFinal(data.getBytes());

            // 将加密后的字节数据转换为Base64编码的字符串
            String encryptedString = Base64.getEncoder().encodeToString(encryptedBytes);

            encryptedString= ToHexString(encryptedBytes);  //转为十六进制

            System.out.println("Encrypted data (Base64): " + encryptedString);

            return encryptedString.toUpperCase();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "";
    }

    //转为十六进制
    private static String ToHexString(byte[] bytes) {
        String hexString = "";
        if (bytes != null) {
            StringBuilder strB = new StringBuilder();
            for (byte b : bytes) {
                strB.append(String.format("%02x", b));
            }
            hexString = String.valueOf(strB);
        }
        return hexString;
    }

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值