我需要将一些python代码移植到c#中,我在这行中遇到了一些问题:
蟒蛇
hmac.new(key, message,digestmod=hashlib.sha256).digest()
Run Code Online (Sandbox Code Playgroud)
C#
HMACSHA256 hm = new HMACSHA256(key);
byte[] result = hm.ComputeHash(enc.GetBytes(message));
Run Code Online (Sandbox Code Playgroud)
当密钥和消息相同(逐字节检查)时,为什么我在C#中得到不同的结果?
如果在将消息转换为字节数组时使用不同的编码,则可以为同一消息获取不同的哈希值.目前尚不清楚您使用的是哪种编码,但重点是它们应该匹配.
例如:
hmac.new("mykey", "mymessage",digestmod=hashlib.sha256).digest()
Run Code Online (Sandbox Code Playgroud)
gTM3eMvH4WsjwCGzp4gZNV5a62dEcWw/gjTMPngjJpQ =
在C#中,根据您的'enc'变量,您会得到不同的结果.
Encoding enc = Encoding.GetEncoding("ASCII");
Run Code Online (Sandbox Code Playgroud)
gTM3eMvH4WsjwCGzp4gZNV5a62dEcWw/gjTMPngjJpQ =
Encoding enc = Encoding.GetEncoding("Unicode");
Run Code Online (Sandbox Code Playgroud)
2wqHPyE5oiI3ukxOaKo9ao6AN8fcwjgdDInBHTXTwGQ =
| 归档时间: |
|
| 查看次数: |
653 次 |
| 最近记录: |