Cargo=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySWQiOjMsImV4cCI6MTY4NTc3OTYwOSwiaWF0IjoxNjg1MTc0ODA5LCJpc3MiOiJDYXJnbyIsInN1YiI6InVzZXIgdG9rZW4ifQ.t7OVtwRE1IobIYRjsaJgJCZDHp4jBlO3VZc9Dsi-t5E 7436229=skey%3D%40Uyta2flI3%3Buin%3Do0007436229%3Bp_skey%3Dqm4lF-L8Gunzmcu3w9VAz1mMYy5jGuP72ecdQ-pzdc8_ 1023250836=skey%3D%40HTv3Ryui3%3Buin%3Do1023250836%3Bp_skey%3DS5zhIlqb2Y-mvHo377gfE9CFHC45BP-FaYudutu2QLU_ 请使用golang帮我取出其中的键值对
时间: 2024-02-12 10:08:34 浏览: 73
首先,我们需要对JWT token进行解析,获取其中的payload部分。可以使用第三方库github.com/dgrijalva/jwt-go来进行解析,具体代码如下:
```go
import (
"fmt"
"github.com/dgrijalva/jwt-go"
)
func main() {
tokenString := "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySWQiOjMsImV4cCI6MTY4NTc3OTYwOSwiaWF0IjoxNjg1MTc0ODA5LCJpc3MiOiJDYXJnbyIsInN1YiI6InVzZXIgdG9rZW4ifQ.t7OVtwRE1IobIYRjsaJgJCZDHp4jBlO3VZc9Dsi-t5E 7436229=skey%3D%40Uyta2flI3%3Buin%3Do0007436229%3Bp_skey%3Dqm4lF-L8Gunzmcu3w9VAz1mMYy5jGuP72ecdQ-pzdc8_ 1023250836=skey%3D%40HTv3Ryui3%3Buin%3Do1023250836%3Bp_skey%3DS5zhIlqb2Y-mvHo377gfE9CFHC45BP-FaYudutu2QLU_"
token, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) {
return []byte("secret"), nil // 这里可以替换成自己的加密密钥
})
if err != nil {
fmt.Println("Error parsing JWT token:", err)
return
}
payload := token.Claims.(jwt.MapClaims)
fmt.Println(payload)
}
```
解析出来的payload是一个map,其中包含了UserId、exp、iss和sub等键值对,以及还原的skey、uin和p_skey键值对。可以通过下面的代码分别获取这些键值对:
```go
userId := payload["UserId"].(float64)
exp := payload["exp"].(float64)
iss := payload["iss"].(string)
sub := payload["sub"].(string)
skey1 := payload["7436229"].(string)
skey2 := payload["1023250836"].(string)
fmt.Println(userId, exp, iss, sub, skey1, skey2)
```
这样就可以获取到Cargo中的所有键值对了。需要注意的是,skey、uin和p_skey中包含了特殊字符,需要进行解码才能得到真正的值。
阅读全文