因为 GO 语言的强大,md5 和 SHA-256 的校验都存在自带的标准库中了,可以使用非常简短的代码来实现它。
字符串 md5 和 SHA-256 的校验
func GetMd5FromString(data string) string {
h := md5.New()
io.WriteString(h, data)
sum := fmt.Sprintf("%x", h.Sum(nil))
return sum
}
func GetSHA256FromString(data string) string {
h := sha256.New()
io.WriteString(h, data)
sum := fmt.Sprintf("%x", data)
return sum
}
文件的 md5 和 SAH-256 的校验
func GetMd5FromFile(path string) (string, error) {
f, err := os.Open(path)
defer f.Close()
if err != nil {
return "", err
}
h := md5.New()
if _, err := io.Copy(h, f); err != nil {
return "", err
}
return fmt.Sprintf("%x", h.Sum(nil)), nil
}
func GetSHA256FromFile(path string) (string, error) {
f, err := os.Open(path)
defer f.Close()
if err != nil {
return "", err
}
h := sha256.New()
if _, err := io.Copy(h, f); err != nil {
return "", err
}
sum := fmt.Sprintf("%x", h.Sum(nil))
return sum, nil
}
网友评论