Как правильно вычислить SHA256 хеш набора битов?

Использую класс SHA256 из System.Security.Cryptography для хеширования

Вот код с комментариями: https://pastebin.com/kfpsmLGk

Вот это правильный хеш (справа) скрин с правильным результатом хеширования на сайте

А у меня получается вот такое: скрин с неправильным моим результатом хеширования

Обобщение про мой код: строка, символизирующая биты, вроде-как абсолютно правильно конвертируется в массив байтов, но sha256 выдает не тот результат, как на сайте. А на сайте он верный, я проверял.

Что я делаю не так?


Ответы (1 шт):

Автор решения: Yaroslav

У Вас проблема с конвертациией массива байт хеша, если использовать этот метод то все будет ок:

static string ConvertHashToBinary(byte[] bytes)
{
    StringBuilder builder = new StringBuilder();
    for (int i = 0; i < bytes.Length; i++)
    {
        string binary = Convert.ToString(bytes[i], 2).PadLeft(8, '0');
        builder.Append(binary);   
    }
    return builder.ToString();
}

PS: Без кода тяжело судить, так что ответ основан на предположениях!)

→ Ссылка