Files
encryptx/md5x/md5x.go
T

37 lines
585 B
Go
Raw Normal View History

2023-12-27 19:00:14 +08:00
package md5x
import (
"crypto/md5"
"encoding/hex"
"io"
"os"
)
// 字符串的md5
func Md5String(value string) string {
m := md5.New()
m.Write([]byte(value))
return hex.EncodeToString(m.Sum(nil))
}
// 文件的md5
func Md5File(path string) (string, error) {
file, err := os.Open(path)
if err != nil {
return "", err
}
defer file.Close()
2024-03-15 13:49:58 +08:00
return Md5Stream(file)
}
// 流式的md5
func Md5Stream(reader io.Reader) (string, error) {
2023-12-27 19:00:14 +08:00
hash := md5.New()
2024-03-15 13:49:58 +08:00
_, err := io.Copy(hash, reader)
if err != nil {
return "", err
}
2023-12-27 19:00:14 +08:00
return hex.EncodeToString(hash.Sum(nil)), nil
}