首页 > 解决方案 > 在 Golang 中使用任何类型的加密(AES 等)加密和解密 JWT

问题描述

我正在 Go 中搜索一个库,它可以让我能够加密发送和解密以读取当用户登录我在 Golang 中制作的 api rest 时发送的 JWT。

我已经看到了很多关于 AES 的例子,但是我在尝试用 AES 加密 JWT 时遇到了很多问题,因为像“。”这样的符号。或“-”给我问题。

我知道我必须使用 32 字节的密钥,我可以将基数更改为 64。但仅使用最简单的示例,使用密码制作简单的哈希,我在加密/解密时总是出现相同的错误。

例如 :

crypto/aes: invalid key size X

我使用与 Stack Overflow 答案相同的代码:AES Encryption Golang and Python

我已经签署了我的令牌,我想在签署后添加新的安全级别。

claims := Claim{
    User: user,
    StandardClaims: djwt.StandardClaims{
        ExpiresAt: time.Now().Add(time.Hour * 1).Unix(),
        Issuer: "App Timer",
    },
}

token := djwt.NewWithClaims(djwt.SigningMethodRS256, claims)
result, err := token.SignedString(privateKey)

if err != nil {
    log.Fatal("TokenSingingError")
}

标签: apigoencryptionjwtaes

解决方案


推荐阅读