我正在尝试从 C# 移植算法。我需要的一个步骤是获取字节数组的 md5。我似乎无法在 C# 和 go 实现之间获得一致的哈希值。
在 C# 中我可以这样做:new MD5CryptoServiceProvider().ComputeHash(new byte[] { 5 }))
我得到 [139 182 193 120 56 100 63 150 145 204 106 77 230 197 23 9]
开始:md5.New().Sum([]byte{5})
产量:[5 212 29 140 217 143 0 178 4 233 128 9 152 236 248 66 126]
我是在做错什么,还是实现实际上不同。我需要能够在 go 端复制 C# 行为。
最佳答案
您误用了 Sum 函数的输入。 sum 的输入参数用于存储输出,而不是作为 hash 的输入。直接使用 md5.Sum
(如您所愿)或写入返回的 Hash 对象,如示例所示:http://golang.org/pkg/crypto/md5/#example_New
关于c# - C#和golang的MD5不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22765185/