使用一个签名密钥签署 jwt 是否安全?

我正在用 Golang 构建一个 web api。我想在这个 API 中实现身份验证,所以我在看 JWT。


在dgrijalva/jwt-go的 JWT 实现中,给出了以下示例:


token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{

    "foo": "bar",

    "nbf": time.Date(2015, 10, 10, 12, 0, 0, 0, time.UTC).Unix(),

})


tokenString, err := token.SignedString(hmacSampleSecret)

hmacSampleSecret用于签署密钥。出于安全原因,这应该是.envhmacSampleSecret文件中的字符串吗?或者这个值是否应该偶尔轮换和过期?


如果推荐最后一个,是否已经有我可以使用的实现?


慕少森
浏览 120回答 1
1回答

湖上湖

如果您想使用 SHA256 算法进行 jwt 签名,那么您应该在 .env 文件中生成并存储长随机密钥。秘密应该是静态的,不要太担心安全性,任何人几乎不可能暴力破解并找到你的秘密。你不需要改变你的秘密:)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go