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