Files
alist/pkg/utils/hash.go

50 lines
844 B
Go
Raw Normal View History

2022-08-31 20:46:19 +08:00
package utils
import (
"crypto/md5"
"crypto/sha1"
"crypto/sha256"
2022-09-18 20:17:24 +08:00
"encoding/base64"
2022-08-31 20:46:19 +08:00
"encoding/hex"
2022-09-18 20:17:24 +08:00
"strings"
2022-08-31 20:46:19 +08:00
)
2023-07-15 16:28:55 +08:00
func GetSHA1Encode(data []byte) string {
2022-08-31 20:46:19 +08:00
h := sha1.New()
2023-07-15 16:28:55 +08:00
h.Write(data)
2022-08-31 20:46:19 +08:00
return hex.EncodeToString(h.Sum(nil))
}
2023-07-15 16:28:55 +08:00
func GetSHA256Encode(data []byte) string {
h := sha256.New()
2023-07-15 16:28:55 +08:00
h.Write(data)
return hex.EncodeToString(h.Sum(nil))
}
2023-07-15 16:28:55 +08:00
func GetMD5Encode(data []byte) string {
2022-08-31 20:46:19 +08:00
h := md5.New()
2023-07-15 16:28:55 +08:00
h.Write(data)
2022-08-31 20:46:19 +08:00
return hex.EncodeToString(h.Sum(nil))
}
2022-09-18 20:17:24 +08:00
2023-07-15 16:28:55 +08:00
func GetMD5EncodeStr(data string) string {
return GetMD5Encode([]byte(data))
}
2022-09-18 20:17:24 +08:00
var DEC = map[string]string{
"-": "+",
"_": "/",
".": "=",
}
func SafeAtob(data string) (string, error) {
for k, v := range DEC {
data = strings.ReplaceAll(data, k, v)
}
bytes, err := base64.StdEncoding.DecodeString(data)
if err != nil {
return "", err
}
return string(bytes), err
}