Go语言中如何快速获取[]byte字节数组的校验和
Go 中获取 []byte 校验和的方法
有非常简洁的实现方式,根据你需要的校验和类型可以选择不同的方案:
1. 简单字节累加和(完全匹配你提到的 sum(array) 效果)
如果只是需要把所有字节数值相加得到总和,直接写个轻量的工具函数即可:
// 自定义sum函数,累加所有字节值 func sum(b []byte) uint64 { var res uint64 for _, val := range b { res += uint64(val) } return res } // 调用示例 array := []byte("some string") sumRes := sum(array)
2. 工程常用标准校验和(标准库直接支持,无需自己实现)
如果是需要CRC、MD5、SHA这类工业标准校验和,Go标准库已经封装好了直接调用的方法,入参就是[]byte,和你期望的调用逻辑完全一致:
- CRC32(适合快速校验数据完整性)
import "hash/crc32" array := []byte("some string") crc32Res := crc32.ChecksumIEEE(array)
- MD5
import "crypto/md5" array := []byte("some string") md5Res := md5.Sum(array) // 返回长度为16的字节数组,存储MD5校验值
- SHA256
import "crypto/sha256" array := []byte("some string") sha256Res := sha256.Sum256(array) // 返回长度为32的字节数组,存储SHA256校验值
以上所有方法都不需要额外依赖,直接调用即可得到结果。
内容的提问来源于stack exchange,提问作者g g
相关产品推荐
相关产品推荐

