Перейти к основному содержимому

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

Стд::Криптография::ХешированиеДанных

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

Сравнение

Ссылочное

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

Базовые типы: Объект


Примеры

Общие примеры

Расчет хеша на основе нескольких строк:

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

Расчет хеша на основе потока:

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

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

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

// или

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

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

знч ПримерСтроки = "пример строки"
знч Алгоритм = АлгоритмХеширования.Гост3411_2012_256
знч Кодировка = "UTF-8"
знч КриптоПровайдер = Криптография.ПолучитьBouncyCastle()

пер ХешГост = ХешированиеДанных.Хеш(ПримерСтроки, Алгоритм, Кодировка, КриптоПровайдер)

//или

ХешГост = новый ХешированиеДанных(Алгоритм, КриптоПровайдер)
.ДобавитьДанные(ПримерСтроки, Кодировка)
.Результат

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

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

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

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

Исключения

ИсключениеКриптографии - если Алгоритм не поддерживается указанным криптопровайдером или не удалось найти подходящий, если не был указан.


Свойства

Результат

ТолькоЧтение

Результат: Байты

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


Методы

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

ДобавитьДанные(Данные: Объект?): ХешированиеДанных
Добавляет порцию данных Данные для вычисления хеша.

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

Исключения

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

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


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

ДобавитьДанные(
Данные: Строка,
Кодировка: Кодировка|Строка
): ХешированиеДанных
Добавляется порцию данных Данные для вычисления хеша с учетом кодировки.

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

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

Исключения

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

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


Хеш

Статический

Хеш(
Данные: Объект?,
Алгоритм: АлгоритмХеширования,
Криптопровайдер: Криптопровайдер? = Неопределено
): Байты
Вычисляет хеш по входным данным Данные на основании указанного алгоритма, реализуемого криптопровайдером Криптопровайдер. Если Криптопровайдер не указан - будет подобран автоматически. Для алгоритма ГОСТ 34.11 приоритет в первую очередь отдается КриптоПро, затем Bouncy Castle, затем любой криптопровайдер, поддерживающий данный алгоритм.

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

Исключения

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

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


Хеш

Статический

Хеш(
Данные: Строка,
Алгоритм: АлгоритмХеширования,
Кодировка: Кодировка|Строка,
Криптопровайдер: Криптопровайдер|Строка|? = Неопределено
): Байты
Вычисляет хеш по входным данным Данные на основании указанного алгоритма с учетом кодировки и опционально криптопровайдера. Если Криптопровайдер не указан - будет подобран автоматически. Для алгоритма ГОСТ 34.11 приоритет в первую очередь отдается КриптоПро, затем Bouncy Castle, затем любой криптопровайдер, поддерживающий данный алгоритм.

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

Исключения

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

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


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

Объект

ВСтроку

ПолучитьТип

Представление