31 lines
543 B
Go
31 lines
543 B
Go
package sha
|
|
|
|
import (
|
|
"crypto/hmac"
|
|
"crypto/sha1"
|
|
"crypto/sha256"
|
|
"encoding/base64"
|
|
"encoding/hex"
|
|
)
|
|
|
|
func Sha1(src string) string {
|
|
h := sha1.New()
|
|
h.Write([]byte(src))
|
|
sh := hex.EncodeToString(h.Sum(nil))
|
|
return sh
|
|
}
|
|
|
|
func Sha256(src string) string {
|
|
m := sha256.New()
|
|
m.Write([]byte(src))
|
|
res := hex.EncodeToString(m.Sum(nil))
|
|
return res
|
|
}
|
|
|
|
func HmacSha256Base64(src, secret string) string {
|
|
h := hmac.New(sha256.New, []byte(secret))
|
|
h.Write([]byte(src))
|
|
sign := base64.StdEncoding.EncodeToString(h.Sum(nil))
|
|
return sign
|
|
}
|