38 lines
749 B
Go
38 lines
749 B
Go
package utils
|
|
|
|
import (
|
|
"crypto/hmac"
|
|
"crypto/md5"
|
|
"crypto/sha256"
|
|
"encoding/base64"
|
|
"encoding/hex"
|
|
"encoding/json"
|
|
"fmt"
|
|
)
|
|
|
|
func MD5Base64(content []byte) string {
|
|
h := md5.New()
|
|
h.Write(content)
|
|
return base64.StdEncoding.EncodeToString(h.Sum(nil))
|
|
}
|
|
|
|
func MD5Hex(content []byte) string {
|
|
h := md5.New()
|
|
h.Write(content)
|
|
return hex.EncodeToString(h.Sum(nil))
|
|
}
|
|
|
|
func HmacSha256(data string, secret string) string {
|
|
h := hmac.New(sha256.New, []byte(secret))
|
|
h.Write([]byte(data))
|
|
//return base64.StdEncoding.EncodeToString(h.Sum(nil))
|
|
return hex.EncodeToString(h.Sum(nil))
|
|
}
|
|
|
|
// MD5Any 仅仅是为了判断唯一性
|
|
func MD5Any(v any) string {
|
|
b, _ := json.Marshal(v)
|
|
md5Bytes := md5.Sum(b)
|
|
return fmt.Sprintf("%x", md5Bytes)
|
|
}
|