/// <summary>
/// HMAC Hash
/// </summary>
/// <param name="algorithmName">HMACMD5, HMACSHA1, HMACSHA256, HMACSHA512 ...</param>
/// <param name="key"></param>
/// <param name="text"></param>
/// <returns></returns>
public static byte[] HMAC(string algorithmName, string key, string text)
{
ThrowHelper.ThrowIfNull(algorithmName, "algorithmName");
ThrowHelper.ThrowIfNull(key, "key");
ThrowHelper.ThrowIfNull(text, "text");
var bKey = UTF8Encoding.GetBytes(key);
var buffer = UTF8Encoding.GetBytes(text);
using (var hashAlgorithm = HMACCrypt.Create(algorithmName))
{
hashAlgorithm.Key = bKey;
return(hashAlgorithm.ComputeHash(buffer));
}
}