ШифрованиеДанных
Стд::Криптография::ШифрованиеДанных Базовые типы: Объект |
Иерархия типа
graph BT;
ШифрованиеДанных-->Объект;
Позволяет зашифровать и расшифровать Данные
ключoм по симметричному или асимметричному алгоритму шифрования.
Сравнение ссылочное
Конструкторы
ШифрованиеДанных
ШифрованиеДанных(
ОперацияШифрования: ОперацияШифрования,
Ключ: ЗакрытыйКлюч|ОткрытыйКлюч,
Алгоритм: Строка? = Неопределено,
Криптопровайдер: Криптопровайдер|Строка|? = Неопределено)
Перегрузка: ШифрованиеДанных(ОперацияШифрования: ОперацияШифрования, Ключ: СекретныйКлюч, Преобразование: ПреобразованиеСимметричногоШифрования|Строка, Криптопровайдер: Криптопровайдер|Строка|? = Неопределено, ВекторИнициализации: Байты? = Неопределено) |
Создает новый экземпляр объекта для шифрования данных, где тип ОперацияШифрования
- перечисление. Если значение аргумента Алгоритм Неопределено
и значение параметра Алгоритм
в используемом ключе Ключ
не равно RSA, используется значение алгоритма из объекта ключа. Если значение аргумента Алгоритм = Неопределено
и значение параметра Алгоритм
в используемом ключе Ключ
равно RSA, в качестве значения алгоритма используется RSA/ECB/PKCS1Padding
. Если значение криптопровайдера Неопределено
, криптопровайдер будет подобран автоматически для алгоритма, либо выброшено исключение.
Исключения
ИсключениеКриптографии - при создании экземпляра объекта. Например: указан неподдерживаемый провайдер, или для указанного провайдера алгоритм не найден, или название алгоритма шифрования указано некорректно, или вид ключа не соответствует алгоритму шифрования.
Примеры
знч ГенераторRsa = новый ГенераторПарыКлючей(АлгоритмАсимметричногоШифрования.Rsa)
знч Пара = ГенераторRsa.СоздатьПаруКлючей()
знч Шифр = новый ШифрованиеДанных(ОперацияШифрования.Зашифровать, Пара.ОткрытыйКлюч)
знч Результат = Шифр.ПолучитьРезультат("1234567890".ВБайты())
ШифрованиеДанных
ШифрованиеДанных(
ОперацияШифрования: ОперацияШифрования,
Ключ: СекретныйКлюч,
Преобразование: ПреобразованиеСимметричногоШифрования|Строка,
Криптопровайдер: Криптопровайдер|Строка|? = Неопределено,
ВекторИнициализации: Байты? = Неопределено)
Перегрузка: ШифрованиеДанных(ОперацияШифрования: ОперацияШифрования, Ключ: ЗакрытыйКлюч|ОткрытыйКлюч, Алгоритм: Строка? = Неопределено, Криптопровайдер: Криптопровайдер|Строка|? = Неопределено) |
Создает новый экземпляр объекта для шифрования данных, где тип ОперацияШифрования
- перечисление. Если значение криптопровайдера Неопределено
, криптопровайдер будет подобран автоматически для преобразования, либо выброшено исключение. ВекторИнициализации
используется при шифровании данных секретным ключом в некоторых преобразованиях для симметричных алгоритмов, например AES/CBC
Исключения
ИсключениеКриптографии - при создании экземпляра объекта. Например: указан неподдерживаемый провайдер, или преобразование симметричного шифрования указано некорректно, или вектор инициализации некорректен, или вид ключа не соответствует преобразованию шифрования.
ИсключениеНедопустимыйАргумент - если аргумент ВекторИнициализации
необходим для данного алгоритма, но содержит недопустимое значение
Примеры
знч ГенераторAes = новый ГенераторСекретногоКлюча(АлгоритмСимметричногоШифрования.Aes)
знч СекретныйКлюч = ГенераторAes.СоздатьСекретныйКлюч()
знч Шифр = новый ШифрованиеДанных(ОперацияШифрования.Зашифровать, СекретныйКлюч, ПреобразованиеСимметричногоШифрования.AesEcb)
знч Результат = Шифр.ПолучитьРезультат("1234567890".ВБайты())
Свойства
Алгоритм
ТолькоЧтение Алгоритм: Строка |
Возвращает название алгоритма шифрования.
Криптопровайдер
ТолькоЧтение Криптопровайдер: Криптопровайдер? |
Выбранный криптопровайдер.
ОперацияШифрования
ТолькоЧтение ОперацияШифрования: ОперацияШифрования |
Методы
ДобавитьДанные
Позволяет добавить часть данных Данные
и зашифровать или расшифровать ключом по симметричному или асимметричному алгоритму шифрования. Возвращает зашифрованную часть данных. Если размер данных меньше размера буфера для данного алгоритма, возвращаемое значение будет Неопределено
Исключения
ИсключениеКриптографии - если произошла ошибка шифрования данных. Например: блок данных слишком большой для шифрования по заданному алгоритму.
ИсключениеНедопустимыйАргумент - если размер аргумента Данные
равен нулю.
Примеры
знч ГенераторRsa = новый ГенераторПарыКлючей(АлгоритмАсимметричногоШифрования.Rsa)
знч Пара = ГенераторRsa.СоздатьПаруКлючей()
знч Шифр = новый ШифрованиеДанных(ОперацияШифрования.Зашифровать, Пара.ОткрытыйКлюч)
знч РезультатПромежуточный = Шифр.ДобавитьДанные("asdfghjkl".ВБайты())
знч РезультатДоп = Шифр.ПолучитьРезультат("1234567890".ВБайты())
Зашифровать
Статический Зашифровать(
Данные: Байты,
Ключ: ЗакрытыйКлюч|ОткрытыйКлюч,
Алгоритм: Строка? = Неопределено,
Криптопровайдер: Криптопровайдер|Строка|? = Неопределено
): Байты
Перегрузка: Зашифровать(Данные: Байты, Ключ: СекретныйКлюч, Преобразование: ПреобразованиеСимметричногоШифрования|Строка, Криптопровайдер: Криптопровайдер|Строка|? = Неопределено, ВекторИнициализации: Байты? = Неопределено): Байты |
Позволяет зашифровать Данные
асимметричным ключом Ключ
, с использованием алгоритма шифрования Алгоритм
и криптопровайдера Криптопровайдер
. Если значение аргумента Алгоритм Неопределено
и значение параметра Алгоритм
в используемом ключе Ключ
не равно RSA, используется значение алгоритма из объекта ключа. Если значение аргумента Алгоритм = Неопределено
и значение параметра Алгоритм
в используемом ключе Ключ
равно RSA, в качестве значения алгоритма используется RSA/ECB/PKCS1Padding
. Если значение криптопровайдера Неопределено
, криптопровайдер будет подобран автоматически для алгоритма, либо выброшено исключение.
Исключения
ИсключениеКриптографии - если произошла ошибка шифрования данных. Например: указан неподдерживаемый провайдер, или для указанного провайдера алгоритм не найден, или название алгоритма шифрования указано некорректно, или вид ключа не соответствует указанному алгоритму шифрование.
Примеры
знч ГенераторRsa = новый ГенераторПарыКлючей(АлгоритмАсимметричногоШифрования.Rsa)
знч Пара = ГенераторRsa.СоздатьПаруКлючей()
знч РезультатСт = ШифрованиеДанных.Зашифровать("1234567890".ВБайты(), Пара.ОткрытыйКлюч, "RSA")
знч РезультатОбратныйСт = ШифрованиеДанных.Расшифровать(РезультатСт, Пара.ЗакрытыйКлюч, "RSA")
Зашифровать
Статический Зашифровать(
Данные: Байты,
Ключ: СекретныйКлюч,
Преобразование: ПреобразованиеСимметричногоШифрования|Строка,
Криптопровайдер: Криптопровайдер|Строка|? = Неопределено,
ВекторИнициализации: Байты? = Неопределено
): Байты
Перегрузка: Зашифровать(Данные: Байты, Ключ: ЗакрытыйКлюч|ОткрытыйКлюч, Алгоритм: Строка? = Неопределено, Криптопровайдер: Криптопровайдер|Строка|? = Неопределено): Байты |
Позволяет зашифровать Данные
симметричным ключом Ключ
, с использованием преобразования симметричного шифрования Преобразование
и криптопровайдера Криптопровайдер
. Значение аргумента Преобразование
также может быть задано строкой. Пример: “AES/ECB/PKCS5Padding”. Если значение криптопровайдера Неопределено
, криптопровайдер будет подобран автоматически для преобразования, либо выброшено исключение. ВекторИнициализации
используется при шифровании данных секретным ключом в некоторых режимах симметричных алгоритмов, например CBC для AES.
Исключения
ИсключениеКриптографии - если произошла ошибка шифрования данных Например: указан неподдерживаемый провайдер, или преобразование симметричного шифрования указано некорректно, или вектор инициализации некорректен, или вид ключа не соответствует преобразованию шифрования.
ИсключениеНедопустимыйАргумент - если аргумент ВекторИнициализации
необходим для данного алгоритма, но содержит недопустимое значение
Примеры
знч ГенераторAes = новый ГенераторСекретногоКлюча(АлгоритмСимметричногоШифрования.Aes)
знч СекретныйКлюч = ГенераторAes.СоздатьСекретныйКлюч()
знч РезультатСт = ШифрованиеДанных.Зашифровать("12345678901".ВБайты(), СекретныйКлюч, ПреобразованиеСимметричногоШифрования.AesEcb)
знч РезультатОбратныйСт = ШифрованиеДанных.Расшифровать(РезультатСт, СекретныйКлюч, ПреобразованиеСимметричногоШифрования.AesEcb)
ПолучитьРезультат
Позволяет добавить Данные
и зашифровать или расшифровать ключом по симметричному или асимметричному алгоритму шифрования. Если данные добавлять не требуется, аргумент должен иметь значение Неопределено
. Возвращает последнюю зашифрованную часть данных, если перед этим был вызван метод ДобавитьДанные
и в буфере оставались невозвращенные данные, а также зашифрованные данные Данные
Алгоритм шифрования содержится в объекте ключа.
Исключения
ИсключениеКриптографии - если произошла ошибка шифрования данных. Например: блок данных слишком большой для шифрования по заданному алгоритму.
Примеры
знч ГенераторAes = новый ГенераторСекретногоКлюча(АлгоритмСимметричногоШифрования.Aes)
знч СекретныйКлюч = ГенераторAes.СоздатьСекретныйКлюч()
знч Шифр = новый ШифрованиеДанных(ОперацияШифрования.Зашифровать, СекретныйКлюч, ПреобразованиеСимметричногоШифрования.AesEcb)
знч Результат = Шифр.ПолучитьРезультат("1234567890".ВБайты())
Расшифровать
Статический Расшифровать(
Данные: Байты,
Ключ: ЗакрытыйКлюч|ОткрытыйКлюч,
Алгоритм: Строка? = Неопределено,
Криптопровайдер: Криптопровайдер|Строка|? = Неопределено
): Байты
Перегрузка: Расшифровать(Данные: Байты, Ключ: СекретныйКлюч, Преобразование: ПреобразованиеСимметричногоШифрования|Строка, Криптопровайдер: Криптопровайдер|Строка|? = Неопределено, ВекторИнициализации: Байты? = Неопределено): Байты |
Позволяет расшифровать Данные
асимметричным ключом Ключ
, с использованием алгоритма шифрования Алгоритм
и криптопровайдера Криптопровайдер
. Если значение аргумента Алгоритм Неопределено
и значение параметра Алгоритм
в используемом ключе Ключ
не равно RSA, используется значение алгоритма из объекта ключа. Если значение аргумента Алгоритм = Неопределено
и значение параметра Алгоритм
в используемом ключе Ключ
равно RSA, в качестве значения алгоритма используется RSA/ECB/PKCS1Padding
. Если значение криптопровайдера Неопределено
, криптопровайдер будет подобран автоматически для алгоритма, либо выброшено исключение.
Исключения
ИсключениеКриптографии - если произошла ошибка шифрования данных. Например: указан неподдерживаемый провайдер, или для указанного провайдера алгоритм не найден, или название алгоритма шифрования указано некорректно, или вид ключа не соответствует указанному алгоритму шифрование.
Примеры
знч ГенераторRsa = новый ГенераторПарыКлючей(АлгоритмАсимметричногоШифрования.Rsa)
знч Пара = ГенераторRsa.СоздатьПаруКлючей()
знч РезультатСт = ШифрованиеДанных.Зашифровать("1234567890".ВБайты(), Пара.ОткрытыйКлюч, "RSA")
знч РезультатОбратныйСт = ШифрованиеДанных.Расшифровать(РезультатСт, Пара.ЗакрытыйКлюч, "RSA")
Расшифровать
Статический Расшифровать(
Данные: Байты,
Ключ: СекретныйКлюч,
Преобразование: ПреобразованиеСимметричногоШифрования|Строка,
Криптопровайдер: Криптопровайдер|Строка|? = Неопределено,
ВекторИнициализации: Байты? = Неопределено
): Байты
Перегрузка: Расшифровать(Данные: Байты, Ключ: ЗакрытыйКлюч|ОткрытыйКлюч, Алгоритм: Строка? = Неопределено, Криптопровайдер: Криптопровайдер|Строка|? = Неопределено): Байты |
Позволяет расшифровать Данные
симметричным ключом Ключ
, с использованием преобразования симметричного шифрования Преобразование
и криптопровайдера Криптопровайдер
. Значение аргумента Преобразование
также может быть задано строкой. Пример: “AES/ECB/PKCS5Padding”. Если значение криптопровайдера Неопределено
, криптопровайдер будет подобран автоматически для преобразования, либо выброшено исключение. ВекторИнициализации
используется при шифровании данных секретным ключом в некоторых режимах симметричных алгоритмов, например CBC для AES.
Исключения
ИсключениеКриптографии - если произошла ошибка шифрования данных. Например: указан неподдерживаемый провайдер, или преобразование симметричного шифрования указано некорректно, или вектор инициализации некорректен, или вид ключа не соответствует преобразованию шифрования.
ИсключениеНедопустимыйАргумент - если аргумент ВекторИнициализации
необходим для данного алгоритма, но содержит недопустимое значение
Примеры
знч ГенераторAes = новый ГенераторСекретногоКлюча(АлгоритмСимметричногоШифрования.Aes)
знч СекретныйКлюч = ГенераторAes.СоздатьСекретныйКлюч()
знч РезультатСт = ШифрованиеДанных.Зашифровать("12345678901".ВБайты(), СекретныйКлюч, ПреобразованиеСимметричногоШифрования.AesEcb)
знч РезультатОбратныйСт = ШифрованиеДанных.Расшифровать(РезультатСт, СекретныйКлюч, ПреобразованиеСимметричногоШифрования.AesEcb)