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

相关推荐
captain3761 分钟前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
心中有你021423 分钟前
Java实现Dijkstra最短路径算法(邻接表 + 优先队列)
java·数据库·算法
步行cgn1 小时前
Spring MVC + Thymeleaf 模板解析失败:从 500 错误到页面正常显示
java·spring·mvc
IT_陈寒1 小时前
Java序列化踩坑记:对象循环引用让我加班两小时
前端·人工智能·后端
lgcgkCQ2 小时前
【AI 转型实战 1】SpringAI 入门:搭建基础大模型对话能力
java·ai·agent·rag·spring ai·mcp·langchain4j
泡海椒2 小时前
05-雷达图多维画像-信用评级多维画像
后端
王中阳Go2 小时前
5.27 分钟干完后端和全部测试:一场三小时笔试的五个失分点,四个不在代码上
大数据·数据库·人工智能·后端·大语言模型
大哥43092 小时前
Modbus 的"字序":一个配错就变成天文数字,或者干脆变成 0
后端
Wang's Blog2 小时前
Java 项目实战:交友项目 - 用户体系集成总结
java·开发语言·交友
岩钧2 小时前
New API 源码解析:一个生产级 AI 网关的架构与实现
后端