gpt4 book ai didi

c# - HMAC sha256 在 c# 中返回与 python 不同的值

转载 作者:太空宇宙 更新时间:2023-11-03 19:56:20 33 4
gpt4 key购买 nike

我需要将一些 python 代码移植到 c# 中,但我在使用这一行时遇到了一些问题:

Python

hmac.new(key, message,digestmod=hashlib.sha256).digest()

C#

HMACSHA256 hm = new HMACSHA256(key);
byte[] result = hm.ComputeHash(enc.GetBytes(message));

当键和消息相同(逐字节检查)时,为什么我在 C# 中得到不同的结果?

最佳答案

如果在将消息转换为字节数组时使用不同的编码,则同一消息可以获得不同的哈希值。不清楚您使用的是哪种编码,但关键是它们应该匹配。

例如:

hmac.new("mykey", "mymessage",digestmod=hashlib.sha256).digest()

gTM3eMvH4WsjwCGzp4gZNV5a62dEcWw/gjTMPngjJpQ=

在 C# 中,您会根据“enc”变量获得不同的结果。

Encoding enc = Encoding.GetEncoding("ASCII");

gTM3eMvH4WsjwCGzp4gZNV5a62dEcWw/gjTMPngjJpQ=

Encoding enc = Encoding.GetEncoding("Unicode");

2wqHPyE5oiI3ukxOaKo9ao6AN8fcwjgdDInBHTXTwGQ=

关于c# - HMAC sha256 在 c# 中返回与 python 不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33300844/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com