围棋中的校验和是怎样的?和计算?



我查看了https://go.dev/doc/modules/gomod-ref和https://go.dev/ref/mod#go-mod-tidy,在这两个页面上我都找不到任何解释如何计算go.sum中的校验和的文档。

go.sum中的校验和是如何计算的?

校验和是依赖项的哈希值。您要查找的文档是https://go.dev/ref/mod#go-sum-files。

go中的每一行。Sum有三个以空格分隔的字段:模块路径,版本(可能以/go.mod结尾)和散列。

  • 模块路径是哈希值所属模块的名称。
  • 版本号是哈希值所属模块的版本号。如果版本以/go结尾。Mod,哈希值是用于模块的go。Mod文件;否则,该哈希值将用于模块.zip文件中的文件。
  • 哈希列由算法名称(如h1)和base64编码的加密哈希组成,以冒号(:)分隔。目前唯一支持的哈希算法是SHA-256 (h1)。如果将来发现SHA-256中的漏洞,将增加对另一种算法的支持(命名为h2等)。

的例子。与module version hash的求和线类似

github.com/go-chi/chi v1.5.4 h1:QHdzF2szwjqVV4wmByUnTcsbIg7UGaQ0tPF2t5GcAIs=
github.com/go-chi/chi v1.5.4/go.mod h1:uaf8YgoFazUOkPBG7fxPftUylNumIev9awIWOENIuEg=

如果你想知道你是如何计算哈希值的,也就是你给SHA-256函数提供了什么输入,这里有描述:https://cs.opensource.google/go/x/mod/+/refs/tags/v0.5.0:sumdb/dirhash/hash.go

这里是一个要点,允许你计算任意目录的模块哈希值,而不使用go:https://gist.github.com/MarkLodato/c03659d242ea214ef3588f29b582be70

最新更新