【发布时间】:2020-03-02 17:28:30
【问题描述】:
主要出于求知欲,我想验证 go.sum 哈希值,以更好地了解该过程的工作原理。但我无法验证哈希值。我做错了什么?
MOD=github.com/google/trillian
REL=v1.3.0
和
curl --silent https://sum.golang.org/lookup/${MOD}@${REL}
55144
github.com/google/trillian v1.3.0 h1:Mr/GnBzXQvowTJVaWPox/mMcYf2L1hJKNBAOffNBLlE=
github.com/google/trillian v1.3.0/go.mod h1:qYuTstG3eXZCOnvIfE8IeoEQDrjpm1dkfydVTBiSyx8=
go.sum database tree
156802
lFayLBRYOtnUSyDaIvmpVKydST+NdNWNkfSVehq3Ty8=
— sum.golang.org Az3grsd5k3D+TW56dDtJTGqaF+x6L16iYOWvSoO/T/M/UGpCGaJgDfGKvco2qJuo1Hk/j0RUxpndYL68xfrGiWacAAk=
旁白:有没有办法让 API 返回 JSON?不允许使用参数。
IIUC Mr/GnBzXQvowTJVaWPox/mMcYf2L1hJKNBAOffNBLlE= 应该是压缩模块目录、散列然后base64编码的结果,但它不是:
zip -r - "${GOPATH}/pkg/mod/${MOD}@${REL}" | \
sha256sum | \
head --bytes=64 | \
base64 --wrap=0
MzQxNjhkNTQzZTk0MjFjY2FjN2NjYTljMzczZDgwYmE0MzE1ZjY4YzY3OWYzNzZjNTc4OTFiMTRlNzA0NjAwMQ==
如果我从散列向后工作,它似乎是二进制编码的。所以,我尝试了openssl dgst -sha256 -binary,但这也没有让我得到正确的哈希值:
zip -r - "${GOPATH}/pkg/mod/${MOD}@${REL}" | \
openssl dgst -sha256 -binary | \
base64
NBaNVD6UIcysfMqcNz2AukMV9oxnnzdsV4kbFOcEYAE=
【问题讨论】:
标签: go-modules