使用一个签名密钥对 jwt 进行签名是否安全?

时间:2021-01-01 15:21:20

标签: go 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 用于对密钥进行签名。出于安全原因,此 hmacSampleSecret 是否应该是 .env 文件中的字符串?或者这个值应该不时轮换和过期?

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

1 个答案:

答案 0 :(得分:2)

如果您想使用 SHA256 算法进行 jwt 签名,那么您应该在您的 .env 文件中生成并存储长随机密钥

秘密应该是静态的,不要太担心安全性,任何人几乎不可能通过暴力破解找到你的秘密。

你不需要改变你的秘密:)