没有合适的资源?快使用搜索试试~ 我知道了~
首页go JWT RS256 加解密 “key is of invalid type”
go JWT RS256 加解密 “key is of invalid type” import ( fmt github.com/dgrijalva/jwt-go time ) func signed(name string, key interface{}) (string, error) { tk := jwt.NewWithClaims(jwt.SigningMethodRS256, jwt.MapClaims{ exp: fmt.Sprintf(%d, time.Now().Add(time.Minute).Unix()), //exp:
资源详情
资源评论
资源推荐

go JWT RS256 加解密加解密 “key is of invalid type”
go JWT RS256 加解密加解密 “key is of invalid type”
import (
"fmt"
"github.com/dgrijalva/jwt-go"
"time"
)
func signed(name string, key interface{}) (string, error) {
tk := jwt.NewWithClaims(jwt.SigningMethodRS256, jwt.MapClaims{
"exp": fmt.Sprintf("%d", time.Now().Add(time.Minute).Unix()),
//"exp": time.Now().Add(time.Minute).Unix(),
"sub": "1234567890",
"name": name,
"admin": true,
"iat": 1516239022,
})
return tk.SignedString(key)
}
func pares(tokenString string, key interface{}) (interface{}, bool) {
token, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) {
//if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok {
// return nil, fmt.Errorf("Unexpected signing method: %v", token.Header["alg"])
//}
if _, ok := token.Method.(*jwt.SigningMethodRSA); !ok {
return nil, fmt.Errorf("Unexpected signing method: %v", token.Header["alg"])
}
return key, nil
})
if claims, ok := token.Claims.(jwt.MapClaims); ok && token.Valid {
return claims, true
} else {
fmt.Println("======pares:", err)
return "", false
}
}
测试代码
import (
//"crypto/x509"
//"encoding/base64"
"io/ioutil"
//"encoding/pem"
"fmt"
"github.com/dgrijalva/jwt-go"
"testing"
)
func TestJWT(t *testing.T) {
privatekey := `-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAnzyis1ZjfNB0bBgKFMSvvkTtwlvBsaJq7S5wA+kzeVOVpVWw
kWdVha4s38XM/pa/yr47av7+z3VTmvDRyAHcaT92whREFpLv9cj5lTeJSibyr/Mr
m/YtjCZVWgaOYIhwrXwKLqPr/11inWsAkfIytvHWTxZYEcXLgAXFuUuaS3uF9gEi
NQwzGTU1v0FqkqTBr4B8nW3HCN47XUu0t8Y0e+lf4s4OxQawWD79J9/5d3Ry0vbV
3Am1FtGJiJvOwRsIfVChDpYStTcHTCMqtvWbV6L11BWkpzGXSW4Hv43qa+GSYOD2
QU68Mb59oSk2OB+BtOLpJofmbGEGgvmwyCI9MwIDAQABAoIBACiARq2wkltjtcjs
kFvZ7w1JAORHbEufEO1Eu27zOIlqbgyAcAl7q+/1bip4Z/x1IVES84/yTaM8p0go
amMhvgry/mS8vNi1BN2SAZEnb/7xSxbflb70bX9RHLJqKnp5GZe2jexw+wyXlwaM
+bclUCrh9e1ltH7IvUrRrQnFJfh+is1fRon9Co9Li0GwoN0x0byrrngU8Ak3Y6D9
D8GjQA4Elm94ST3izJv8iCOLSDBmzsPsXfcCUZfmTfZ5DbUDMbMxRnSo3nQeoKGC
0Lj9FkWcfmLcpGlSXTO+Ww1L7EGq+PT3NtRae1FZPwjddQ1/4V905kyQFLamAA5Y
lSpE2wkCgYEAy1OPLQcZt4NQnQzPz2SBJqQN2P5u3vXl+zNVKP8w4eBv0vWuJJF+
hkGNnSxXQrTkvDOIUddSKOzHHgSg4nY6K02ecyT0PPm/UZvtRpWrnBjcEVtHEJNp
bU9pLD5iZ0J9sbzPU/LxPmuAP2Bs8JmTn6aFRspFrP7W0s1Nmk2jsm0CgYEAyH0X
+jpoqxj4efZfkUrg5GbSEhf+dZglf0tTOA5bVg8IYwtmNk/pniLG/zI7c+GlTc9B
BwfMr59EzBq/eFMI7+LgXaVUsM/sS4Ry+yeK6SJx/otIMWtDfqxsLD8CPMCRvecC
2Pip4uSgrl0MOebl9XKp57GoaUWRWRHqwV4Y6h8CgYAZhI4mh4qZtnhKjY4TKDjx
QYufXSdLAi9v3FxmvchDwOgn4L+PRVdMwDNms2bsL0m5uPn104EzM6w1vzz1zwKz
5pTpPI0OjgWN13Tq8+PKvm/4Ga2MjgOgPWQkslulO/oMcXbPwWC3hcRdr9tcQtn9
Imf9n2spL/6EDFId+Hp/7QKBgAqlWdiXsWckdE1Fn91/NGHsc8syKvjjk1onDcw0
NvVi5vcba9oGdElJX3e9mxqUKMrw7msJJv1MX8LWyMQC5L6YNYHDfbPF1q5L4i8j
8mRex97UVokJQRRA452V2vCO6S5ETgpnad36de3MUxHgCOX3qL382Qx9/THVmbma
3YfRAoGAUxL/Eu5yvMK8SAt/dJK6FedngcM3JEFNplmtLYVLWhkIlNRGDwkg3I5K
y18Ae9n7dHVueyslrb6weq7dTkYDi3iOYRW8HRkIQh06wEdbxt0shTzAJvvCQfrB
jg/3747WSsf/zBTcHihTRBdAv6OmdhV4/dD5YBfLAkLrd+mX7iE=
-----END RSA PRIVATE KEY-----`
fprikey, err := ioutil.ReadFile("private.txt")
if err != nil {
fmt.Println("读取文件错误:", err.Error())
return
}
_ = fprikey
//bb, err := base64.StdEncoding.DecodeString(privatekey) //解base64
//if err != nil {
// fmt.Println("解base64错误:", err)
// t.Fail()
// return
//}
//_, rest := pem.Decode([]byte(privatekey))
//priKey, err := x509.ParsePKCS1PrivateKey(bb) //解析私钥
//if err != nil {


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0