Golang获取普通字符串和大文件的MD5
 编辑于 2022-10-15 00:01:28 阅读 1414
先看一下md5的两种用法
	hash := md5.New()
	b := []byte("test")
	hash.Write(b)
	fmt.Printf("%x %x\n", hash.Sum(nil), md5.Sum(b))
普通字符串的md5
func Md5(str string) string {
	data := []byte(str)
	return fmt.Sprintf("%x", md5.Sum(data))
}
小文件的md5(不推荐)
func Md5File(file string) string {
	cf, _ := os.Open(file)
	defer cf.Close()
	body, _ := io.ReadAll(cf)
	return fmt.Sprintf("%x", md5.Sum(body))
}
文件的md5(支持大文件)
func Md5File(file string) string {
	f, _ := os.Open(file)
	defer f.Close()
	md5hash := md5.New()
	if _, err := io.Copy(md5hash, f); err != nil {
		panic(err.Error())
	}
	return fmt.Sprintf("%x", md5hash.Sum(nil))
}
