码迷,mamicode.com
首页 > 编程语言 > 详细

JWT 签名算法 HS256 与 RS256

时间:2020-03-03 14:38:41      阅读:477      评论:0      收藏:0      [点我收藏+]

标签:委托   认证   https   无法   tps   消息   ret   好的   因此   

前言

JWT 规范的详细说明请见「参考」部分的链接。这里主要说明一下 JWT 最常见的两种签名算法:HS256(HMAC-SHA256) 和 RS256(RSA-SHA256)。

HS256 和 RS256 都是一种消息签名算法,得到的都只是一段无法还原的签名。区别在于消息签名签名验证需要的 「key」不同。

  1. HS256 使用同一个「secret_key」进行签名与验证。一旦 secret_key 泄漏,就毫无安全性可言了。
    • 因此 HS256 只适合集中式认证,签名和验证都必须由可信方进行。
  2. RS256 是使用 RSA 私钥进行签名,使用 RSA 公钥进行验证。公钥即使泄漏也毫无影响,只要确保私钥安全就行。
    • RS256 可以将验证委托给其他应用,只要将公钥给他们就行。

对于单体应用而言,HS256 和 RS256 的安全性没有任何差别。
而对于需要进行多方验证的微服务架构而言,显然 RS256 安全性更高。
只有 user 微服务需要用 RSA 私钥生成 JWT,其他微服务使用公钥即可进行签名验证,私钥得到了更好的保护。

参考

JWT 签名算法 HS256 与 RS256

标签:委托   认证   https   无法   tps   消息   ret   好的   因此   

原文地址:https://www.cnblogs.com/kirito-c/p/12402066.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!