跳到主要内容
ecdsa.com

RS256

JWS 算法 RSASSA-PKCS1-v1_5 配合 SHA-256(RFC 7518 §3.3),历来是 OpenID Connect 提供商的默认算法,签名长度等于 RSA 模数长度(2048 位密钥为 256 字节)。
其他写法RS256RSASSA-PKCS1-v1_5 SHA-256COSE -257

OpenID Connect Core 要求提供商支持用 RS256 签名 ID 令牌,因此 Google、Microsoft Entra ID、Okta 和 Auth0 默认都用它签名。密钥必须至少为 2048 位(RFC 7518 §3.3);对应的 JWK 中 kty 为 RSA,并包含 n 和 e。签名是确定性的:相同的密钥和输入总是得到相同的输出。

验证开销很低(在 Apple M4 Max 的单个核心上使用 OpenSSL 3.6.5,2048 位密钥每秒约 114,000 次),签名则很慢(每秒约 3,000 次),这适合签名次数远少于依赖方验证次数的颁发者。代价是体积:2048 位签名为 342 个 base64url 字符,3072 位签名为 512 个。

典型的陷阱是算法混淆:如果验证者对同一个密钥对象也接受 HS256,就可能被诱导把 RSA 公钥当作 HMAC 密钥使用。应为每个密钥固定 RS256。PS256 使用相同的密钥,但采用更强的 PSS 填充。

标准与参考资料

全部术语