我正在生成CMAC中没有密钥的HMAC-SHA1,每次针对相同的值使用不同的哈希值时,它都会返回,如何匹配哈希值,

我的代码是https://dotnetfiddle.net/3a3tiP


是否可以匹配这些哈希?
我认为没有密钥就无法使用HMAC-SHA1,对吗?
如果在“是”以上,那么为什么C#允许不使用键来生成,它是怎么做的?

最佳答案

是的,因为您正在使用无参数构造函数来构建HMACSHA1实例,并且MSDN says


  HMACSHA1()-使用随机生成的密钥初始化HMACSHA1类的新实例。


只需添加一些常量键,您每次都会得到相同的哈希值。例如

var hmacSha = new HMACSHA1(Encoding.UTF8.GetBytes("yourConstantKey"));


并回答您的问题:


是的,请使用相同的密钥2代。
是。
它为您生成随机密钥

关于c# - 在没有C#键的情况下检查HMAC-SHA1,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27165107/

10-12 00:17
查看更多