Link Search Menu Expand Document

ХешированиеДанных

Стд::Криптография::ХешированиеДанных
Базовые типы: Объект

Иерархия типа

graph BT;
ХешированиеДанных-->Объект;

Вычислитель контрольных сумм и хешей (дайджестов) по произвольным входным данным.

Сравнение ссылочное


Примеры

Расчет хеша на основе строки с данными:

знч Хеш = новый ХешированиеДанных(АлгоритмХеширования.Sha1)
              .ДобавитьДанные("текст для расчета хеша".ВБайты())
              .ДобавитьДанные("дополнительные данные для расчета хеша".ВБайты())
              .Результат

Расчет хеша на основе файла:

исп СодержимоеФайла = новый Файл("<Путь к файлу>").ПолучитьПотокЧтения()
знч Хеш = новый ХешированиеДанных(АлгоритмХеширования.Sha1)
              .ДобавитьДанные(СодержимоеФайла)
              .Результат

Расчет хеша на основе строки с учетом кодировки:

знч ПроизвольнаяСтрока = "Строковое значение"
знч Хеш = ХешированиеДанных.Хеш(ПроизвольнаяСтрока, АлгоритмХеширования.Md5, "UTF-16")

// или 

Хеш = новый ХешированиеДанных(АлгоритмХеширования.Md5)
              .ДобавитьДанные(ПроизвольнаяСтрока, "UTF-16")
              .Результат

Расчет хеша на основе строки с учетом криптопровайдера:

знч ПримерСтроки  = "пример строки"
знч Алгоритм = АлгоритмХеширования.Gost3411_2012_256
знч Кодировка = "UTF-8"
знч КриптоПровайдер = Криптография.ПолучитьBouncyCastle()
 
знч Хеш = ХешированиеДанных.Хеш(ПримерСтроки, Алгоритм, Кодировка, КриптоПровайдер)
 
//или
 
Хеш = новый ХешированиеДанных(Алгоритм, КриптоПровайдер)
                .ДобавитьДанные(ПримерСтроки, Кодировка)
                .Результат

Конструкторы

ХешированиеДанных

ХешированиеДанных(
  Алгоритм: АлгоритмХеширования,
  Криптопровайдер: Криптопровайдер|Строка|? = Неопределено)

Создает объект для хеширования данных с помощью алгоритма Алгоритм, реализуемого криптопровайдером Криптопровайдер. Если Криптопровайдер не указан - будет подобран автоматически: приоритет в первую очередь отдается КриптоПро, затем Bouncy Castle, затем любой криптопровайдер, имеющий реализацию алгоритма шифрования. Порядок приоритетов при выборе криптопровайдера действует только для алгоритма ГОСТ 34.11-2012

Исключения

ИсключениеКриптографии - если алгоритм не поддерживается криптопровайдером или криптопровайдер отсутствует.


Свойства

Результат

ТолькоЧтение Результат: Байты

Результат вычисления хеша для добавленных ранее данных. Длина результата зависит от используемого алгоритма.


Методы

ДобавитьДанные

ДобавитьДанные(Данные: Объект?): ХешированиеДанных

Добавляет порцию данных Данные для вычисления хеша.

Поддерживаемые типы Данные:

Исключения

ИсключениеХешированияДанных - при добавлении неподдерживаемого типа данных.


ДобавитьДанные

ДобавитьДанные(
  Данные: Строка,
  Кодировка: Кодировка|Строка
): ХешированиеДанных

Добавляется порцию данных Данные для вычисления хеша с учетом кодировки.

Поддерживаемые типы Данные:

На клиенте поддерживается только Кодировка UTF-8.

Исключения

ИсключениеНедопустимыйАргумент - если кодировка не поддерживается.


Хеш

Статический Хеш(
  Данные: Объект?,
  Алгоритм: АлгоритмХеширования,
  Криптопровайдер: Криптопровайдер? = Неопределено
): Байты
Перегрузка:
Хеш(Данные: Строка, Алгоритм: АлгоритмХеширования, Кодировка: Кодировка|Строка, Криптопровайдер: Криптопровайдер|Строка|? = Неопределено): Байты

Вычисляет хеш по входным данным Данные на основании указанного алгоритма, реализуемого криптопровайдером Криптопровайдер. Если Криптопровайдер не указан - будет подобран автоматически: приоритет в первую очередь отдается КриптоПро, затем Bouncy Castle, затем любой криптопровайдер, имеющий реализацию алгоритма шифрования. Порядок приоритетов при выборе криптопровайдера действует только для алгоритма ГОСТ 34.11-2012

Поддерживаемые типы Данные:

Исключения

ИсключениеХешированияДанных - при добавлении неподдерживаемого типа данных.

ИсключениеКриптографии - если алгоритм не поддерживается криптопровайдером или криптопровайдер отсутствует.


Хеш

Статический Хеш(
  Данные: Строка,
  Алгоритм: АлгоритмХеширования,
  Кодировка: Кодировка|Строка,
  Криптопровайдер: Криптопровайдер|Строка|? = Неопределено
): Байты
Перегрузка:
Хеш(Данные: Объект?, Алгоритм: АлгоритмХеширования, Криптопровайдер: Криптопровайдер? = Неопределено): Байты

Список унаследованных методов

Объект