C#和golang之间的MD5不一致
我正在尝试从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]
我是在做一些奇怪的事情,还是实现方式实际上有所不同。我需要能够在旅途中复制C#行为。
我有一些可用的小提琴去和C#的,如果你想检查我的整个实现。
回答:
您正在滥用Sum函数的输入。sum的输入参数用于存储输出,而不是哈希的输入。md5.Sum
如示例所示,直接使用(行为随您的意愿)或写入返回的Hash对象:http
:
//golang.org/pkg/crypto/md5/#example_New
以上是 C#和golang之间的MD5不一致 的全部内容, 来源链接: utcz.com/qa/420175.html