前言
Java本身就自带加密算法实现,实现hmacsha1加密算法,可以利用本身自带的方法
hmacsha1加密算法实现
ini
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class SignatureGenerator {
public static void main(String[] args) {
String username = "tIsMUhEc0tp&ee050d34cabc|sdkappid=20250616;random=0";
String deviceSecret = "dARYgMURsw0pAV1w";
// 1. 将签名类型标识改为 hmacsha1
String signatureType = "hmacsha1";
try {
// 2. 将算法实例改为 HmacSHA1
Mac mac = Mac.getInstance("HmacSHA1");
SecretKeySpec secretKeySpec = new SecretKeySpec(
deviceSecret.getBytes(StandardCharsets.UTF_8),
"HmacSHA1" // 3. 密钥规范也需同步改为 HmacSHA1
);
mac.init(secretKeySpec);
byte[] hmacBytes = mac.doFinal(username.getBytes(StandardCharsets.UTF_8));
// 使用标准 Base64 编码
String signature = Base64.getEncoder().encodeToString(hmacBytes);
// 拼接 password
String password = signature + ";" + signatureType;
System.out.println("Password: " + password);
} catch (Exception e) {
e.printStackTrace();
}
}
}
输出结果为

总结
Java本身就自带加密算法实现,实现hmacsha1加密算法,可以利用本身自带的方法