Java实现hmacsha1加密算法

前言

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加密算法,可以利用本身自带的方法

相关推荐
掉鱼的猫2 小时前
Spring Boot → Solon 注解迁移实战指南:一张对照表说清楚
java·spring boot
程序边界2 小时前
lac_agent自愈链路上篇——crontab守护的那些坑与健康检查实战
后端
笨鸟飞不快2 小时前
从 MVC 到 DDD:一次真实的渐进式迁移实录
后端·架构
plainGeekDev2 小时前
广播接收器 → Flow + Lifecycle
android·java·kotlin
程序员威哥2 小时前
C#也能玩转YOLO:工业视觉原生推理方案,零Python依赖
后端
plainGeekDev2 小时前
EventBus → SharedFlow
android·java·kotlin
kfaino2 小时前
你好,我叫 Prompt——其实,你一直在给 AI 写程序
后端·openai·ai编程
带刺的坐椅2 小时前
Spring Boot → Solon 注解迁移实战指南:一张对照表说清楚
java·springboot·web·solon
用户3721574261353 小时前
Java 将一个 PPT 文档拆分为多个文件
java