package myth import ( "crypto/hmac" "crypto/md5" "crypto/sha1" "crypto/sha256" "crypto/sha512" "encoding/hex" ) // SHA512 hash func SHA512(data []byte) ([]byte, error) { hash := sha512.New() _, err := hash.Write(data) if err != nil { return nil, err } return hash.Sum(nil), nil } // HmacSHA256 hmac with sha256 func HmacSHA256(k, s []byte) ([]byte, error) { hash := hmac.New(sha256.New, k) _, err := hash.Write(s) if err != nil { return nil, err } return hash.Sum(nil), nil } // SHA256 hash string func SHA256(data string) string { hash := sha256.New() hash.Write([]byte(data)) return hex.EncodeToString(hash.Sum(nil)) } // MD5 hash string func MD5(data string) string { hash := md5.New() hash.Write([]byte(data)) return hex.EncodeToString(hash.Sum(nil)) } // SHA1 hash string func SHA1(data string) string { hash := sha1.New() hash.Write([]byte(data)) return hex.EncodeToString(hash.Sum(nil)) } // HmacSHA1 hmac with sha1 func HmacSHA1(k, s []byte) ([]byte, error) { hash := hmac.New(sha1.New, k) _, err := hash.Write(s) if err != nil { return nil, err } return hash.Sum(nil), nil }