我将把 JWT 应用到我使用 Java-Jersey 开发的 REST API 中。我正在将这个库用于 JWT - https://github.com/auth0/java-jwt
我对 JWT - Secret 有几个问题
- 这个
Secret
必须是唯一的吗? - 我应该使用用户密码的散列版本来保密吗? (那么无论如何它都不是唯一的)这是因为当用户更改密码时,他的令牌将自动失效。
原文由 PeakGen 发布,翻译遵循 CC BY-SA 4.0 许可协议
我将把 JWT 应用到我使用 Java-Jersey 开发的 REST API 中。我正在将这个库用于 JWT - https://github.com/auth0/java-jwt
我对 JWT - Secret 有几个问题
Secret
必须是唯一的吗?原文由 PeakGen 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答11.7k 阅读✓ 已解决
4 回答1.5k 阅读✓ 已解决
4 回答1.3k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
2 回答762 阅读✓ 已解决
2 回答1.8k 阅读
2 回答1.7k 阅读
它对于您的应用程序应该是唯一的——毕竟它需要是一个 _秘密_——但它不会对每个令牌都是唯一的。相反,您在任何给定时间都应该拥有相对较少数量的秘密密钥(例如,通常只有一个密钥,但在您从一个密钥轮换到下一个密钥时,有短暂的时间段您有两个密钥)。
不会,原因有二:
GoPackers123
。在你的秘密中使用密码意味着有人可以轻松地测试给定的潜在密码,看看它是否会产生正确的签名;而且,更重要的是,他们可以轻松地测试大量潜在密码,看看其中是否有任何一个给出了正确的签名。这是一次离线攻击,所以你永远不会知道它发生了。