java HMACSHA1 加密解密

public static long genHMAC(byte[] data, String key) {
    byte[] result = new byte[8];
    long value = 0;
    try {
        //根据给定的字节数组构造一个密钥,第二参数指定一个密钥算法的名称
        SecretKeySpec signinKey = new SecretKeySpec(key.getBytes(), "HmacSHA1");
        //生成一个指定 Mac 算法 的 Mac 对象
        Mac mac = Mac.getInstance("HmacSHA1");
        //用给定密钥初始化 Mac 对象
        mac.init(signinKey);
        //完成 Mac 操作
        byte[] iv = Arrays.copyOf(data, INITIALIZATION_VECTOR_SIZE);
        byte[] rawHmac = mac.doFinal(iv);
        ByteBuffer buffer = ByteBuffer.wrap(rawHmac, 0, 8);
        value = buffer.getLong();
    } catch (NoSuchAlgorithmException e) {
        logger.error("猎豹解密失败,错误信息:" + e.getMessage());
    } catch (InvalidKeyException e) {
        logger.error("猎豹解密失败,错误信息:" + e.getMessage());
    }
    if (null != result) {
        return value;
    } else {
        return 0;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_38572383/article/details/80859750
今日推荐