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

为何jwt.io与Postman生成的JWT在启用Base64编码时不一致?

Postman与jwt.io生成JWT不一致的原因分析

当启用「Secret Base64 encoded」选项后,两个工具对密钥的处理逻辑完全相反,这是导致令牌不一致的核心原因:

  • 禁用选项时:两者都直接使用你输入的明文密钥作为签名的原始字节,所以生成的令牌完全匹配。

  • 启用选项时:

    • jwt.io:将你输入的密钥视为已经Base64编码后的字符串,会先把它解码成二进制字节序列,再用这个字节序列作为HMAC签名的密钥。
    • Postman:将你输入的密钥视为明文,会先把它编码成Base64字符串,再用这个Base64字符串的字节作为HMAC签名的密钥。

举个实际例子:假设输入密钥为mysecret

  • 禁用选项:两者都用mysecret的原始字节签名,结果一致。
  • 启用选项:
    • jwt.io尝试解码mysecret(但它不是有效Base64,会得到错误的字节数据),用错误数据签名;
    • Postman将mysecret编码为bXlzZWNyZXQ=,用这个字符串的字节签名;
      最终两者的签名密钥完全不同,生成的令牌自然不一致。

禁用Base64编码时令牌匹配
启用Base64编码时令牌不匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 14:24:57