新建一个maven测试项目,直接把代码复制过去就行,把data和secretKey的值替换成想加密的值。

(图片来源网络,侵删)
package test; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import org.Apache.commons.codec.binary.Base64; public class testP { public static string hmacSha1ToBase64(String data, String secretKey) { try { // 创建一个HMAC-SHA1密钥 SecretKeySpec signingKey = new SecretKeySpec(secretKey.getBytes(), "HmacSHA1"); // 获得一个Mac对象 Mac mac = Mac.getInstance("HmacSHA1"); mac.init(signingKey); // 计算HMAC值 byte[] rawHmac = mac.doFinal(data.getBytes()); // 将HMAC值转换成Base64编码 return Base64.encodeBase64String(rawHmac); } catch (InvalidKeyException | NoSuchAlgorithmException e) { throw new RuntimeException("获取失败:", e); } } public static void main(String[] args) { String data = "值1"; String secretKey = "值2"; String encryptedData = hmacSha1ToBase64(data, secretKey); System.out.println("HMAC-SHA1加Base64输出成功: " + encryptedData); } }
如果复制过去import org.apache.commons.codec.binary.Base64;标红可以考虑导入依赖
commons-codec commons-codec 1.16.1 org.apache.commons commons-lang3 3.14.0

(图片来源网络,侵删)