在 JWS 中,alg 决定签名的计算方式:HS256、RS256、PS256、ES256、ES256K、Ed25519 等,或 none。在 JWE 中,它决定内容密钥的传递方式,而 enc 指明内容加密算法。取值是区分大小写的字符串,登记在 IANA 的“JSON Web Signature and Encryption Algorithms”注册表中。
在签名验证通过之前,头部都可能被攻击者控制,因此验证方不得让它决定算法:为每个密钥配置可接受的算法(最好只有一种),其余一律拒绝(RFC 8725 §3.1)。按 alg 分派处理的库曾经接受过 none,或者把 RSA 公钥当作 HMAC 密钥使用。
RFC 9864(2025年)弃用了 EdDSA 这类含义取决于密钥的“多态”标识符,改用 Ed25519 这类完全指定的标识符,使算法名称本身就能确定具体运算。