如何判斷你是否擁有 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"
}