登录
首页 >  Golang >  Go问答

C#和golang之间的MD5不一致

来源:Golang技术栈

时间:2023-04-16 16:30:36 328浏览 收藏

最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《C#和golang之间的MD5不一致》主要内容涉及到golang等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~

问题内容

我正在尝试从 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# 行为。

如果您想检查我的整个实现,我有一些可用于go和c#的小提琴。

正确答案

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

好了,本文到此结束,带大家了解了《C#和golang之间的MD5不一致》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表