Golang使用md5生成哈希方法
作者:RiverSoul
时间:2026-03-10
浏览:0
Go语言中使用crypto/md5生成MD5哈希,md5.Sum()用于字符串,md5.New()配合io.Copy处理文件流,常用于数据完整性校验。
本文目录
Go语言中使用crypto/md5生成MD5哈希,md5.Sum()用于字符串,md5.New()配合io.Copy处理文件流,常用于数据完整性校验。

在Go语言中,可以使用标准库 crypto/md5 来生成MD5哈希值。虽然MD5不适用于安全敏感场景(如密码存储),但在校验数据完整性、生成唯一标识等场景中仍被广泛使用。
导入 crypto/md5 包
要使用MD5功能,需导入 crypto/md5 包:
import "crypto/md5"
对字符串生成MD5哈希
使用 md5.Sum() 函数可对字节数组计算MD5值,返回一个16字节的数组。通常将其转换为16进制字符串输出。
示例代码:
package main
import (
"crypto/md5"
"fmt"
)
func main() {
data := "hello world"
hash := md5.Sum([]byte(data))
fmt.Printf("MD5: %x\n", hash) // 输出:b10a8db164e0754105b7a99be72e3fe5
}
对文件生成MD5哈希
对于大文件,建议分块读取以避免内存溢出。使用 io.Copy 配合 md5.New() 创建哈希器。
示例代码:
package main
import (
"crypto/md5"
"fmt"
"io"
"os"
)
func getFileMD5(filename string) (string, error) {
file, err := os.Open(filename)
if err != nil {
return "", err
}
defer file.Close()
hash := md5.New()
if _, err := io.Copy(hash, file); err != nil {
return "", err
}
return fmt.Sprintf("%x", hash.Sum(nil)), nil
}
func main() {
md5sum, err := getFileMD5("example.txt")
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("File MD5:", md5sum)
}
常见用法说明
- %x 格式化输出会自动将字节转为小写16进制字符串
- md5.Sum() 接受
[]byte并返回[16]byte - md5.New() 返回实现
hash.Hash接口的对象,适合流式处理 - 若需Base64编码结果,可用
encoding/base64转换
基本上就这些。MD5在Go中使用简单,注意区分 Sum 和 New 的适用场景即可。
作者最新文章
漫蛙漫画app下载安装最新版本
2026-10-13 13:19
漫蛙漫画官网入口链接
2026-10-13 13:19
漫蛙2漫画APP最新版本下载免费安装
2026-10-13 13:17
漫蛙漫画官网正版登录入口
2026-10-13 13:15
Windows安装Docker教程:启用WSL2并运行第一个容器验证
2026-10-08 17:47
上一篇:
动漫花园资源网下载教程及使用说明
下一篇:
盗墓笔记启程座驾怎么选-座驾选择推荐
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多










































