Подтвердить что ты не робот

Есть ли предел для ввода sha256?

Когда хэширование строки, например пароля, с помощью sha256, существует ли ограничение на длину строки, которую я использую? Например, это только "безопасный" для хэш-строк, которые равны <= 64 символа?

4b9b3361

Ответ 1

Существует технически предел, но он довольно большой. Схема заполнения, используемая для SHA-256, требует, чтобы размер ввода (в битах) был выражен как 64-разрядное число. Поэтому максимальный размер равен (2 64 -1)/8 bytes ~ = 2'091'752 терабайт.

Это делает лимит почти полностью теоретическим, а не практическим.

Большинство людей не имеют хранилища для почти такой же информации в любом случае, но даже если бы они это делали, обработка их все последовательно для создания одного хэша займет некоторое время, большинство из которых считали бы запретительным.

Быстрый расчет количества обратных конвертов показывает, что даже с самыми быстрыми корпоративными SSD в настоящее время 1 перечисленными на аппаратном обеспечении Tom, и разделяя их по ширине 16 для улучшения пропускной способности, просто прочитав это количество данных все равно потребуется около 220 лет.


1. По состоянию на апрель 2016 года.

Ответ 2

Нет такого предела, кроме максимального размера сообщения 2 64 -1 бит. SHA2 часто используется для генерации хэшей для исполняемых файлов, которые, как правило, намного больше, чем несколько десятков байтов.

Ответ 3

Верхний предел приведен в стандарте NIST FIPS 180-4. Причиной для верхнего предела является схема заполнения. Длина сообщения l в конце добавляется к сообщению во время заполнения.

Затем добавьте 64-битный блок, который равен числу l выраженному в двоичном представлении.

Поэтому по стандарту NIST максимальный размер файла, который можно хэшировать с помощью SHA-256, составляет 2 ^ 64.