You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java生成POST请求签名KEY(基于HMAC-SHA384算法规则)

Java 版本签名生成实现

实现逻辑和你提供的JS版本完全对齐,注意JSON序列化输出必须和JS原生JSON.stringify完全一致,否则会导致签名校验失败。示例中使用Jackson做JSON序列化,你也可以替换为其他JSON工具,只要保证序列化结果和JS侧一致即可。

import com.fasterxml.jackson.databind.ObjectMapper;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;

public class SignatureGenerator {
    private static final String HMAC_ALGORITHM = "HmacSHA384";
    private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();

    public static String generate(String apiPath, long nonce, Object body, String secretKey) throws Exception {
        // 拼接签名字符串
        String signContent = apiPath + nonce + OBJECT_MAPPER.writeValueAsString(body);
        // 初始化HMAC-SHA384
        Mac mac = Mac.getInstance(HMAC_ALGORITHM);
        mac.init(new SecretKeySpec(secretKey.getBytes(StandardCharsets.UTF_8), HMAC_ALGORITHM));
        // 计算哈希并转十六进制
        byte[] hash = mac.doFinal(signContent.getBytes(StandardCharsets.UTF_8));
        return bytesToHex(hash);
    }

    private static String bytesToHex(byte[] bytes) {
        StringBuilder sb = new StringBuilder();
        for (byte b : bytes) {
            String hex = Integer.toHexString(0xff & b);
            if (hex.length() == 1) sb.append('0');
            sb.append(hex);
        }
        return sb.toString();
    }

    public static void main(String[] args) throws Exception {
        String secretKey = "";
        String apiPath = "/v3/auth/kuna_codes/issued-by-me";
        long nonce = System.currentTimeMillis();
        Object body = new Object(); // 替换为实际请求体对象

        String signature = generate(apiPath, nonce, body, secretKey);
        System.out.println(signature);
    }
}

注意事项

  • 如果不想引入Jackson依赖,可以直接拼接和实际发送内容完全一致的请求体JSON字符串,替换OBJECT_MAPPER.writeValueAsString(body)部分即可
  • 确保apiPath、nonce、请求体内容和实际发送POST请求时的参数完全一致

内容的提问来源于stack exchange,提问作者Xleb。

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 18:15:04