SHA256
Удобнее вызывать
HashData
без экземпляра. Через
Create и
ComputeHash результат
тот же. Большие данные по
кускам -
IncrementalHash.
Синтаксис
byte[] hash = SHA256.HashData(data);
Пример
Давайте посчитать хеш строки
abcde в UTF-8:
using System;
using System.Security.Cryptography;
using System.Text;
class Program
{
static void Main()
{
byte[] data = Encoding.UTF8.GetBytes("abcde");
string res = Convert.ToHexString(SHA256.HashData(data));
Console.WriteLine(res);
}
}
Результат выполнения кода:
36BBE50ED96841D10443BCB670D6554F0A34B761BE67EC9C4A8AD2C0C44CA42C
Пример
Давайте узнать длину массива хеша:
using System;
using System.Security.Cryptography;
using System.Text;
class Program
{
static void Main()
{
byte[] data = Encoding.UTF8.GetBytes("abcde");
int res = SHA256.HashData(data).Length;
Console.WriteLine(res);
}
}
Результат выполнения кода:
32
Пример
Давайте сравнить HashData
и ComputeHash:
using System;
using System.Security.Cryptography;
using System.Text;
class Program
{
static void Main()
{
byte[] data = Encoding.UTF8.GetBytes("abcde");
string fromStatic = Convert.ToHexString(SHA256.HashData(data));
string fromInstance;
using (SHA256 sha = SHA256.Create())
{
fromInstance = Convert.ToHexString(sha.ComputeHash(data));
}
bool res = fromStatic == fromInstance;
Console.WriteLine(res);
}
}
Результат выполнения кода:
True
Смотрите также
-
HashData,
статический расчёт -
SHA512,
хеш SHA-512 -
IncrementalHash,
данные по частям -
HMACSHA256,
хеш с ключом