mirror of
https://gitclone.com/github.com/MetaCubeX/Clash.Meta
synced 2024-11-16 06:01:21 +08:00
34 lines
521 B
Go
34 lines
521 B
Go
|
package tools
|
||
|
|
||
|
import (
|
||
|
"crypto/hmac"
|
||
|
"crypto/md5"
|
||
|
"crypto/sha1"
|
||
|
)
|
||
|
|
||
|
const HmacSHA1Len = 10
|
||
|
|
||
|
func HmacMD5(key, data []byte) []byte {
|
||
|
hmacMD5 := hmac.New(md5.New, key)
|
||
|
hmacMD5.Write(data)
|
||
|
return hmacMD5.Sum(nil)[:16]
|
||
|
}
|
||
|
|
||
|
func HmacSHA1(key, data []byte) []byte {
|
||
|
hmacSHA1 := hmac.New(sha1.New, key)
|
||
|
hmacSHA1.Write(data)
|
||
|
return hmacSHA1.Sum(nil)[:20]
|
||
|
}
|
||
|
|
||
|
func MD5Sum(b []byte) []byte {
|
||
|
h := md5.New()
|
||
|
h.Write(b)
|
||
|
return h.Sum(nil)
|
||
|
}
|
||
|
|
||
|
func SHA1Sum(b []byte) []byte {
|
||
|
h := sha1.New()
|
||
|
h.Write(b)
|
||
|
return h.Sum(nil)
|
||
|
}
|