Короткий ответ;
Вы смешиваете функцию сжатия и хеш-функцию. Обе страницы/библиотеки верны в своем контексте!
Расширенный ответ
SHA-256, как и другие алгоритмы хеширования, всегда дополняется и определяется в НИСТ.ФИПС.180-4
Предположим, длина сообщения $ млн $, в битах, $\ell$ это биты. Добавить бит 1
до конца сообщения, а затем к
нулевые биты, где к
является наименьшим неотрицательным решением уравнения
$$\ell +1 + k \экв 448 \bmod 512$$ Затем добавьте 64-битный блок, равный номеру $\ell$ выражается с использованием двоичного представления
Таким образом, 512 битов нулей в SHA-256 будут иметь 447 нулей ($к$ часть);
$$\text{Padded_Message} =\underbrace{\texttt{000...00}}_{512-zeros}||\texttt{1}||\underbrace{\texttt{000...00}}_ {447-нули}||\underbrace{\texttt{кодировка длины}}_{64-бит}$$
Если вы действительно хотите протестировать некоторые входные данные, убедитесь, что они верны на тестовых векторах NIST, определенных в Программа проверки криптографических алгоритмов — хеш-функции
Заполнение, как обычно, не связано с пользователем. Библиотеки обрабатывают заполнение для пользователей.
Поскольку это ровно 512 бит, нет разделения и заполнения. Но из онлайн-калькуляторов или кода golang я бы получил хэш sha-256 нулевого ввода:
Как упоминалось выше, заполнение всегда определено. Это часть алгоритма хеширования SHA-256.
Ваш ввод не является нулевым вводом, это 512-битный нулевой ввод. NIST предоставляет тестовый вектор нулевой длины и его результат в виде
Лен = 0
Сообщение = 00
MD = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
Проверка вашего ввода на sha256algorithm.com производит
f5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb4b
Я также протестировал эту страницу на некоторых тестовых векторах NIST.
Ссылка, которую вы предоставляете как СКАЛА МАМБА упоминает как;
Вывод: объединение значений после сжатия входного блока (в том же формате, в котором будет возвращен дайджест)
ВАЖНО: это НЕ тестовые векторы для полной хэш-функции SHA-256, так как правила заполнения игнорируются.
Это результат первой функции сжатия. В этом можно убедиться на sha256algorithm.com если вы остановитесь на 164 шаге. Наведите указатель мыши на начальные значения, и вы получите шестнадцатеричное значение;
da5698be17b...
То же самое и по другой ссылке; дается как векторов тестов на сжатие sha256.
Помните, что вывод функции сжатия является начальным значением следующей функции сжатия, если это необходимо. Если не нужен, то это выход SHA-256. Даны первые начальные значения;
Эти слова представляют собой первые тридцать два бита дробных частей кубических корней первых шестидесяти четырех простых чисел.
как ничего-в-мой-рукав-номер хотя это психология.