1
0
mirror of https://github.com/charlienet/go-mixed.git synced 2025-07-18 00:22:41 +08:00

hash by name

This commit is contained in:
2022-04-13 10:39:40 +08:00
parent 9ff187c944
commit 9ff31583a3
2 changed files with 44 additions and 0 deletions

View File

@ -5,8 +5,10 @@ import (
"crypto/sha1"
"crypto/sha256"
"crypto/sha512"
"errors"
"hash"
"hash/fnv"
"strings"
"github.com/cespare/xxhash/v2"
"github.com/charlienet/go-mixed/bytesconv"
@ -14,6 +16,26 @@ import (
"github.com/tjfoc/gmsm/sm3"
)
type HashFunc func([]byte) bytesconv.BytesResult
var hashFuncs = map[string]HashFunc{
"MD5": Md5,
"SHA1": Sha1,
"SHA224": Sha224,
"SHA256": Sha256,
"SHA384": Sha384,
"SHA512": Sha512,
"SM3": Sm3,
}
func ByName(name string) (HashFunc, error) {
if f, ok := hashFuncs[strings.ToUpper(name)]; ok {
return f, nil
}
return nil, errors.New("Unsupported hash functions")
}
func Md5(msg []byte) bytesconv.BytesResult { return sum(md5.New, msg) }
func Sha1(msg []byte) bytesconv.BytesResult { return sum(sha1.New, msg) }

View File

@ -6,12 +6,34 @@ import (
"crypto/sha1"
"crypto/sha256"
"crypto/sha512"
"errors"
"hash"
"strings"
"github.com/charlienet/go-mixed/bytesconv"
"github.com/tjfoc/gmsm/sm3"
)
type HMacFunc func(key, msg []byte) bytesconv.BytesResult
var hmacFuncs = map[string]HMacFunc{
"MD5": Md5,
"SHA1": Sha1,
"SHA224": Sha224,
"SHA256": Sha256,
"SHA384": Sha384,
"SHA512": Sha512,
"SM3": Sm3,
}
func ByName(name string) (HMacFunc, error) {
if f, ok := hmacFuncs[strings.ToUpper(name)]; ok {
return f, nil
}
return nil, errors.New("Unsupported hash functions")
}
func Md5(key, msg []byte) bytesconv.BytesResult { return sum(md5.New, key, msg) }
func Sha1(key, msg []byte) bytesconv.BytesResult { return sum(sha1.New, key, msg) }