首页 > 解决方案 > 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)

标签: arraysgochecksum

解决方案


我认为在可能的情况下避免使用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")
}

https://godocs.io/crypto/md5#Sum


推荐阅读