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

关于JOSE、JWA、JWE、JWK、JWS与JWT的区别及关联的技术问询

JOSE 家族:JWA、JWK、JWS、JWE、JWT 的区别与关联

核心定义与区别

JOSE(JSON Object Signing and Encryption)

这不是单个技术标准,而是一套规范集合,专门定义如何用JSON格式实现数据的签名、加密及密钥管理。它是整个体系的顶层框架,下面所有术语都是它的子组件。

JWA(JSON Web Algorithms)

JOSE体系中的算法标准,明确了可用于JWS签名/验证、JWE加密/解密的算法列表,包括:

  • 签名类:HS256(HMAC-SHA256)、RS256(RSA-SHA256)、ES256(ECDSA-SHA256)等
  • 加密类:AES-GCM、RSA-OAEP等
    简单说,它是JWS/JWE执行安全操作的“算法手册”。

JWK(JSON Web Key)

JOSE体系中的密钥标准化表示格式,用JSON结构来描述各种加密/签名密钥(RSA公钥/私钥、EC密钥、对称密钥等),让密钥可以在不同系统间以统一格式传输和存储。示例简化RSA公钥:

{
  "kty": "RSA",
  "n": "公钥模数字符串",
  "e": "AQAB"
}

它的作用是给密钥发一张“标准化身份证”,让JWS/JWE能直接识别使用。

JWS(JSON Web Signature)

JOSE体系中的数字签名标准,定义了如何对JSON数据进行签名,生成带签名的结构化数据,保证数据的完整性(未被篡改)和不可否认性(签名方无法抵赖)。
结构由三段Base64URL编码的字符串用.分隔:
[头部].[负载].[签名]
头部会指定使用的签名算法(对应JWA定义的算法),负载是要签名的原始数据。

JWE(JSON Web Encryption)

JOSE体系中的数据加密标准,定义了如何对JSON数据进行加密,生成密文结构,保证数据的保密性(只有拥有密钥的接收方能解密)。
结构比JWS复杂,包含五段Base64URL编码的字符串:
[保护头部].[一次性密钥].[初始化向量].[密文].[认证标签]
同样,头部会指定使用的加密算法(来自JWA)。

JWT(JSON Web Token)

基于JOSE标准的具体令牌实现,是一种紧凑、URL安全的令牌格式,用于在各方之间安全传递声明信息(比如用户ID、权限、过期时间等)。
JWT有两种形态:

  • 绝大多数场景下的JWT:本质是JWS,负载是明文声明,通过签名保证完整性
  • 加密型JWT:本质是JWE,负载是加密后的声明,保证内容不被泄露
    日常开发中提到的“JWT”几乎都是JWS形态的令牌。

关联关系梳理

  1. JOSE是顶层容器:JWA、JWK、JWS、JWE都是JOSE规范族的一部分,共同构成JSON数据安全操作的完整体系。
  2. JWA是算法基础:JWS的签名/验证、JWE的加密/解密都必须使用JWA中定义的算法,且在各自的头部字段(alg)中声明。
  3. JWK是密钥载体:JWS和JWE依赖密钥完成操作,JWK提供了这些密钥的标准化JSON表示,方便系统间密钥交换和使用。
  4. JWS与JWE是两种安全能力:JWS解决“数据是否被篡改、谁签发的”问题;JWE解决“数据不能被第三方看到”问题,二者是JOSE体系下的两种核心安全操作实现。
  5. JWT是场景化应用:JWT把用户声明作为负载,利用JWS或JWE的能力生成安全令牌,最常见的场景是身份认证(登录后返回JWT,后续请求用JWT验证身份)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 00:35:25