首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET核心JWT -- HmacSha512算法和HmacSha512Signature算法有什么不同?

ASP.NET核心JWT -- HmacSha512算法和HmacSha512Signature算法有什么不同?
EN

Stack Overflow用户
提问于 2022-11-27 07:24:18
回答 2查看 56关注 0票数 3

SecurityAlgorithms类中有两个类似的选项。应该使用哪一个来签名JWT令牌?有什么不同吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-27 09:38:39

区别在于令牌的标头,特别是alg属性。当您使用HmacSha512时,标题如下所示:

代码语言:javascript
复制
{
  "alg": "HS512",
  "typ": "JWT"
}

但是,当您使用HmacSha512Signature时,标题如下所示:

代码语言:javascript
复制
{
  "alg": "http://www.w3.org/2001/04/xmldsig-more#hmac-sha512",
  "typ": "JWT"
}

您可以使用https://jwt.io/确认这一点。

当我有同样的问题时,我发现许多库(大多是.NET之外的库)将而不是支持http://www.w3.org/2001/04/xmldsig-more#hmac-sha512作为alg属性的有效值,因为它没有包含在JSON Web算法RFC,3.1节中。

相关讨论1https://github.com/auth0/node-jsonwebtoken/issues/662

相关讨论2https://giters.com/jwtk/jjwt/issues/676

所以我个人决定使用HmacSha512。如果您的整个系统都是在.NET生态系统中开发的,那么您可以使用这两种系统,它们的工作方式也是一样的,但是如果令牌可以被非.NET的应用程序使用,那么最好使用HmacSha512

票数 2
EN

Stack Overflow用户

发布于 2022-11-27 09:05:57

JWT没有功能上的区别;在遮罩下,HmacSha512Signature被转换为HmacSha512

我有限的理解是,它们是不同的常数,它们代表着相同的底层算法。Signature版本是用XML表示算法的标识符,而那些没有后缀映射到JWT使用的算法标识符的版本。

旧文件包含关于对签名参数使用以“签名”结尾的算法的注释,但最新文件不再包含该注释。我怀疑签名版本是由于遗留和向后兼容的原因而保留的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74588231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档