Метод HashData
Метод принимает два массива:
ключ и данные. Результат совпадает
с
HMACSHA256
и ComputeHash в
using.
Синтаксис
byte[] hash = HMACSHA256.HashData(key, data);
Пример
Давайте посчитать HMAC для ключа
12345 и данных
abcde:
using System;
using System.Security.Cryptography;
using System.Text;
class Program
{
static void Main()
{
byte[] key = Encoding.UTF8.GetBytes("12345");
byte[] data = Encoding.UTF8.GetBytes("abcde");
string res = Convert.ToHexString(HMACSHA256.HashData(key, data));
Console.WriteLine(res);
}
}
Результат выполнения кода:
F8F78E4C506669FDD116876D08ADF809ED7C33585078DCFD4E6FE863B7EA966A
Пример
Давайте сравнить статический метод и экземпляр:
using System;
using System.Security.Cryptography;
using System.Text;
class Program
{
static void Main()
{
byte[] key = Encoding.UTF8.GetBytes("12345");
byte[] data = Encoding.UTF8.GetBytes("abcde");
string fromStatic = Convert.ToHexString(
HMACSHA256.HashData(key, data));
string fromInstance;
using (HMACSHA256 hmac = new HMACSHA256(key))
{
fromInstance = Convert.ToHexString(hmac.ComputeHash(data));
}
bool res = fromStatic == fromInstance;
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Пример
Давайте проверить длину результата:
using System;
using System.Security.Cryptography;
using System.Text;
class Program
{
static void Main()
{
byte[] key = Encoding.UTF8.GetBytes("12345");
byte[] data = Encoding.UTF8.GetBytes("abcde");
int res = HMACSHA256.HashData(key, data).Length;
Console.WriteLine(res);
}
}
Результат выполнения кода:
32
Смотрите также
-
HMACSHA256,
обзор класса -
SHA256.HashData,
хеш без ключа -
SHA256,
SHA-256 -
MD5,
MD5