一尘不染

C#和golang之间的MD5不一致

go

我正在尝试从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#的,如果你想检查我的整个实现。


阅读 540

收藏
2020-07-02

共1个答案

一尘不染

您正在滥用Sum函数的输入。sum的输入参数用于存储输出,而不是哈希的输入。md5.Sum如示例所示,直接使用(行为随您的意愿)或写入返回的Hash对象:http
:
//golang.org/pkg/crypto/md5/#example_New

2020-07-02