package main
import (
"fmt"
"github.com/dgrijalva/jwt-go"
)
func main() {
var input string
fmt.Println("请输入要加密信息")
fmt.Scanln(&input)
claims := jwt.MapClaims{
"yw-803": &input,
}
token := jwt.NewWithClaims(jwt.SigningMethodHS512, claims)
signedToken, err := token.SignedString([]byte("yw"))
if err != nil {
fmt.Println("Error signing token:", err)
return
}
fmt.Println("加密结果为")
fmt.Println(signedToken)
fmt.Println("按下回车键退出...")
fmt.Scanln()
}
解密如下
func decryptToken(tokenString string) {
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"])
}
return []byte("yw"), nil
})
if err != nil {
fmt.Println("Error parsing token:", err)
return
}
claims, ok := token.Claims.(jwt.MapClaims)
if !ok {
fmt.Println("Invalid token claims")
return
}
input := claims["yw-803"]
fmt.Println("解密结果为:")
fmt.Println(input)
}