KeyedHashAlgorithm algorithm = KeyedHashAlgorithm.Create(algorithmName.ToString().ToUpper(CultureInfo.InvariantCulture));
if (null == algorithm)
throw new InvalidOperationException("Please specify a KeyedHashAlgorithm to use."); try
{
algorithm.Key = key;
byte[] bytes = algorithm.ComputeHash(data);
return bytes;
}
finally
{
algorithm.Clear();
}
这个代码会报异常,出现PNSE
经查找各种文档发现一下使用办法是Ok的,有没有其它的办法呢?
try
{
var keyBytes = Encoding.UTF8.GetBytes(key);
var hmac = new HMACSHA1(keyBytes);
byte[] bytes = hmac.ComputeHash(data);
return Convert.ToBase64String(bytes);
}
catch (Exception e)
{
throw e;
}
finally
{
}
HMACSHA256 hashAlgorithm = new HMACSHA256(key);
return hashAlgorithm.ComputeHash(Encoding.UTF8.GetBytes(data));