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

Java实现HmacSHA1加密后Base64编码结果与预期不符如何解决

问题定位

你的HmacSHA1加密逻辑本身没有问题,导致结果不符合预期的核心原因是传入的待加密字符串存在多余字符:

  • 你传入的待加密字符串开头的POST前多了1个空格,你当前写的是" POST...",接口要求的待签名字符串开头是无空格的"POST..."
修正方法

仅需要调整调用时传入的待加密字符串,删除开头的多余空格即可,修正后的调用代码如下:

String test = HmacSHA1Encrypt("POST\nmBAcWORUK93FBOz6jsAuqw==\napplication/json\nFri, 26 Jul 2019 06:00:46 GMT\n/v1/api/userStationList", "6680182547");
额外校验注意事项

如果调整后仍存在匹配问题,可逐一检查以下项:

  • 待签名字符串中的换行符为\n(LF格式),不要使用Windows系统默认的\r\n(CRLF格式)
  • 密钥字符串前后无多余空格、换行等不可见字符
  • 所用Base64编码为标准RFC4648格式,你代码中使用的java.util.Base64.getEncoder()符合要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:36:02