github.com/tuingking/flamingo@v0.0.0-20220403134817-2796ae0e84ca/infra/toolkit/webdev.go (about) 1 package toolkit 2 3 import ( 4 "crypto/hmac" 5 "crypto/sha256" 6 "encoding/base64" 7 "fmt" 8 "io" 9 ) 10 11 const ( 12 encodeStd = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" 13 ) 14 15 func HmacSha256(s string) string { 16 h := hmac.New(sha256.New, []byte("secret key")) 17 io.WriteString(h, s) 18 return fmt.Sprintf("%x", h.Sum(nil)) 19 } 20 21 func EncodeBase64(s string) string { 22 return base64.StdEncoding.EncodeToString([]byte(s)) 23 } 24 25 func EncodeBase64Custom(s string) string { 26 return base64.NewEncoding(encodeStd).EncodeToString([]byte(s)) 27 }