arrays - Golang 字节数组 - 获取校验和
问题描述
我有一个字节数组,由一个字符串组成:
array := []byte("some string")
它看起来像预期的那样:
[115 111 109 101 32 115 116 114 105 110 103]
从 python 开始,我认为有一种更好的方法,而不是类似的方法:
func sum(array []int) int {
result := 0
for _, v := range array {
result += v
}
return result
}
(以上失败,因为数字不是整数,所以这需要另一个数据转换)
有没有办法简单地获取字节数组的校验和?
喜欢:
sum(array)
解决方案
我认为在可能的情况下避免使用fmt
转换是很好的:
package main
import (
"crypto/md5"
"encoding/hex"
)
func checksum(s string) string {
b := md5.Sum([]byte(s))
return hex.EncodeToString(b[:])
}
func main() {
s := checksum("some string")
println(s == "5ac749fbeec93607fc28d666be85e73a")
}
推荐阅读
- c# - 将所有绘制的对象保存到位图中
- android - 如何使用分页库android使用空视图和分页?
- android - 如何使用动画缩放视图以适应 Android 中的内容大小
- javascript - 如何为 raddropdownlist 设置值
- ruby-on-rails - 更改路线后取消初始化课程
- matlab - 如何求解马尔可夫转移率矩阵?
- amazon-web-services - AWS Glue 进程记录逐行插入更新删除
- firebase - 通过云功能获取firebase数据,无需任何触发
- javascript - 排序不与 forEach 一起使用,而是与 map 一起使用
- ruby - Rspec,伪类AR属性