Go 实现文件 md5 和 SHA-256 校验

2020-07-04  本文已影响0人  三梦哥

因为 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
}
上一篇下一篇

猜你喜欢

热点阅读