package main import ( "crypto/sha512" "fmt" ) func GenerateToken(pkey []byte, id int, a... []byte) ([]byte, error) { h := sha512.New() h.Write([]byte(fmt.Sprintf("%x", pkey))) if id != 0 { h.Write([]byte(fmt.Sprintf(":%d", id))) } for _, v := range a { h.Write([]byte(":")) h.Write(v) } return h.Sum(nil), nil }