Mr *_*nce 5 c# jwt asp.net-core
课堂上有这两个类似的选项SecurityAlgorithms。应该使用哪一个来签署 JWT 令牌?有什么区别吗?
区别在于令牌的标头,特别是属性alg。当你使用HmacSha512标题时,它看起来像这样:
{
"alg": "HS512",
"typ": "JWT"
}
Run Code Online (Sandbox Code Playgroud)
但是当你使用HmacSha512Signature标题时,它看起来像这样:
{
"alg": "http://www.w3.org/2001/04/xmldsig-more#hmac-sha512",
"typ": "JWT"
}
Run Code Online (Sandbox Code Playgroud)
您可以使用https://jwt.io/进行确认。
当我遇到同样的问题时,我发现许多库(大部分在 .NET 之外)不支持该http://www.w3.org/2001/04/xmldsig-more#hmac-sha512属性作为有效值alg,因为它未包含在JSON Web Algorithms RFC,第 3.1 节中。
相关讨论1:https ://github.com/auth0/node-jsonwebtoken/issues/662
相关讨论2: https: //giters.com/jwtk/jjwt/issues/676
所以我个人决定使用HmacSha512. 如果您的整个系统将在 .NET 生态系统内开发,您可以使用其中任何一个,并且它们的工作原理相同,但如果令牌可以由非 .NET 的应用程序使用,那么使用 .NET 可能会更好HmacSha512。
| 归档时间: |
|
| 查看次数: |
821 次 |
| 最近记录: |