字节数组的校验和

checksum of a byte array

我有一个 []byte,由一个字符串组成:

    array := []byte("some string")

看起来像预期的那样:

    [115 111 109 101 32 115 116 114 105 110 103]

有没有办法简单地得到[]byte的校验和?喜欢:

    sum(array)

也许您需要 md5.sum 检查可靠性。

https://pkg.go.dev/crypto/md5#Sum

package main

import (
    "crypto/md5"
    "fmt"
)

func main() {
    data := []byte("some string")
    fmt.Printf("%x", md5.Sum(data))
}

另一个例子。

https://play.golang.org/p/7_ctunsqHS3

我认为最好避免使用 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

package main

import (
    "crypto/md5"
    "encoding/hex"
    "fmt"
)

func GetMD5HashWithSum(text string) string {
    hash := md5.Sum([]byte(text))
    return hex.EncodeToString(hash[:])
}

func main() {
    hello := GetMD5HashWithSum("some string")
    fmt.Println(hello)
}

你可以在 Golang Playground