我在当前的项目中使用JWT RS256算法,但我想知道算法RS256、RS384和RS512之间有什么区别。有人可以向我解释这些算法的主要区别是什么吗?
这是在 RFC 7518 -JSON Web 算法 (JWA) 中定义的与 JWS 一起使用的一组算法
“alg”参数值 | 数字签名或MAC算法 | 实施要求 |
---|---|---|
对称HMAC | ||
HS256 | 使用 SHA-256 的 HMAC | 必填 |
HS384 | 使用 SHA-384 的 HMAC | 可选 |
HS512 | 使用 SHA-512 的 HMAC | 可选 |
基于RSA | ||
RS256 | 使用 SHA-256 的 RSASSA-PKCS1-v1_5 | 推荐 |
RS384 | 使用 SHA-384 的 RSASSA-PKCS1-v1_5 | 可选 |
RS512 | 使用 SHA-512 的 RSASSA-PKCS1-v1_5 | 可选 |
椭圆曲线 | ||
ES256 | 使用 P-256 和 SHA-256 的 ECDSA | 推荐- |
ES384 | 使用 P-384 和 SHA-384 的 ECDSA | 可选 |
ES512 | 使用 P-521 和 SHA-512 的 ECDSA | 可选 |
概率签名方案 | ||
PS256 | 使用 SHA-256 的 RSASSA-PSS 和使用 SHA-256 的 MGF1 | 可选 |
PS384 | 使用 SHA-384 的 RSASSA-PSS 和使用 SHA-384 的 MGF1 | 可选 |
PS512 | 使用 SHA-512 的 RSASSA-PSS 和使用 SHA-512 的 MGF1 | 可选 |
极度缺乏安全感 | ||
无 | 未执行数字签名或MAC | 可选 |
RS256
、RS384
和RS512
之间的区别在于哈希算法SHA256
、SHA384
和SHA512