ХешированиеДанных
Стд::Криптография::ХешированиеДанных
Вычислитель контрольных сумм и хешей (дайджестов) по произвольным входным данным.
Сравнение
Ссылочное
Иерархия типа
Базовые типы: Объект
Примеры
Общие примеры
Расчет хеша на основе нескольких строк:
знч ХешСтрок = новый ХешированиеДанных(АлгоритмХеширования.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.
Исключения
ИсключениеНедопустимыйАргумент - если кодировка не поддерживается. ИсключениеКриптографии - если алгоритм не поддерживается криптопровайдером или криптопровайдер отсутствует.