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

相关推荐
IT毕设实战小研8 小时前
电影数据可视化推荐系统
大数据·后端·爬虫·python·算法·信息可视化·课程设计
ssshooter8 小时前
AI 时代你不能不知道的 git worktree
前端·后端·面试
CoderYanger8 小时前
A.每日一题:输入单词需要的最少按键次数 Ⅰ+Ⅱ
java·数据结构·算法·leetcode·面试
Cosolar8 小时前
一文弄懂 Agent Harness 与 Agent Runtime 的区别
java·后端·github
吴声子夜歌8 小时前
Java——类、对象及方法(一)
java·开发语言
程序员夏洛8 小时前
Redis 的持久化机制有哪些?
java·数据库·redis
长大19888 小时前
Python代码慢?这5个性能优化技巧让速度提升100倍
后端
凯尔萨厮8 小时前
Java学习笔记十(注解)
java·笔记·学习
钱栈up9 小时前
VSCode 调试多模块 Maven + Spring Boot 后端:从启动失败到一次跑通
java·spring boot·maven
uoKent9 小时前
c++中new和malloc的区别
java·jvm·c++