如何判断你是否拥有 JWS 或 JWE
来自 JSON Web 加密规范(RFC 7516)的第 9 节:
通过检查
alg
(算法)标头参数值,可以将 JWS 的 JOSE 标头与 JWE 的 JOSE 标头区分开来。如果值表示数字签名或 MAC 算法,或者值是无,则表示 JWS; 如果它代表密钥加密,密钥包装,直接密钥协议,密钥包装密钥协议或直接加密算法,则它适用于 JWE。 (在使用 JWS Compact Serialization 或 JWE Compact Serialization 时,提取要检查的alg
值很简单,使用 JWS JSON 序列化或 JWE JSON 序列化时可能会更困难。)
和
通过确定是否存在
enc
(加密算法)成员,还可以将 JWS 的 JOSE 标头与 JWE 标头区分开来。如果enc
成员存在,则它是 JWE; 否则,它是一个 JWS。
JWS(签名)##
{
"alg": "HS256"
}
JWE(加密)
{
"alg":"RSA1_5",
"enc":"A256GCM",
"iv":"__79_Pv6-fg",
"x5t":"7noOPq-hJ1_hCnvWh6IeYI2w9Q0"
}