ХешФункция.SHA256

Свойства · SHA256

Вычислять значение SHA-256.

Полное описание, параметры и ограничения

ХешФункция.SHA256 (HashFunction.SHA256)

ХешФункция (HashFunction)

SHA256 (SHA256)

Доступен, начиная с версии 8.3.3.

Описание:
Вычислять значение SHA-256.
Использование в версии:

Доступен, начиная с версии 8.3.3.

Методическая информация

Практические примеры

Посчитать SHA-256 и проверить последовательное добавление частей

Хеш одного блока abc должен совпадать с хешем двух последовательно добавленных блоков a и bc. Кодировка и отсутствие BOM заданы явно.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Выполняйте на сервере. Не добавляйте перевод строки или BOM к abc.

  2. Используется SHA-256; результат ХешСумма этого алгоритма — двоичные данные.

ПолныеДанные = ПолучитьДвоичныеДанныеИзСтроки("abc", КодировкаТекста.UTF8, Ложь);
Хеш = Новый ХешированиеДанных(ХешФункция.SHA256);
Хеш.Добавить(ПолныеДанные);
ПолнаяСумма = ВРег(ПолучитьHexСтрокуИзДвоичныхДанных(Хеш.ХешСумма));
ПоЧастям = Новый ХешированиеДанных(ХешФункция.SHA256);
ПоЧастям.Добавить(ПолучитьДвоичныеДанныеИзСтроки("a", КодировкаТекста.UTF8, Ложь));
ПоЧастям.Добавить(ПолучитьДвоичныеДанныеИзСтроки("bc", КодировкаТекста.UTF8, Ложь));
СуммаЧастей = ВРег(ПолучитьHexСтрокуИзДвоичныхДанных(ПоЧастям.ХешСумма));
Сообщить(ПолнаяСумма);
Сообщить(ПолнаяСумма = СуммаЧастей);
Сообщить(Хеш.ХешФункция);
Ожидаемая = "BA7816BF8F01CFEA414140DE5DAE2223B00361A396177A9CB410FF61F20015AD";
Сообщить(ПолнаяСумма = Ожидаемая);

Разбор по шагам

  1. Явно кодируем исходный текст, чтобы хеш зависел от понятной последовательности байтов.

  2. Первый объект получает весь блок, второй — две части в исходном порядке.

  3. Преобразуем хеш в Hex и приводим регистр для сравнения представлений.

  4. Сравниваем оба результата и заранее известную контрольную сумму abc.

Как проверить результат

  1. Оба сравнения равны Истина; Hex совпадает с Ожидаемая.

  2. Замените bc на cb: сравнение хешей должно стать Ложь — порядок байтов важен.

Ожидаемый результат

SHA-256 одинаков для одинаковых байтов независимо от разбивки на части.

На что обратить внимание

  1. Хеш без доверенного эталона не доказывает подлинность отправителя; для этого нужен согласованный механизм подписи или MAC.

  2. Обычный SHA-256 не предназначен для самостоятельного хранения пользовательских паролей.

  3. ХешФункция.CRC32 возвращает другой тип результата: не переносите преобразование в Hex двоичных данных на все алгоритмы автоматически.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.