Go版本
不相关
在你的模块/工作区中 go env
的输出:
not relevant
你做了什么?
https://pkg.go.dev/hash/crc32#example-MakeTable 上的示例使用CRC32-Q多项式生成校验和,所以它看起来应该产生正确的CRC32-Q校验和。
你看到了什么?
产生的校验和值 - 2964d064 - 不正确。
原因是 hash/crc32 只支持某些特定的crc32算法变体,而CRC32-Q需要在 hash/crc32 中实现的其他设置。有一个提案在 #60992 中支持其他变体。
你期望看到什么?
计算 "Hello world" 的CRC32-Q校验和时的预期输出是 "0xA790E213",如 https://crccalc.com/?crc=Hello+world&method=CRC-32Q&datatype=ascii&outtype=0 所示。
这里最简单的修复方法是删除示例,我认为这将是一个改进。最好不要提供错误的示例。
不过,给出一些关于陷阱的提示会更有帮助。
我已经尝试在 https://go.dev/play/p/_avQEOSV2uJ 上修复示例,但也许这太复杂了,无法放入标准文档中。
1条答案
按热度按时间s5a0g9ez1#
cc @golang/security