0
andrey i1c
03.08.20
✎
17:41
|
Ниже приведен код, который по приватному ключу шифрует строку, которую передаем. Все работает. Ключ формируется автоматически и с определенным количеством символов! Если я формирую строку xml с собственным ключом, который короче, то получаю ошибку:1с Недопустимая длина массива знаков Base-64.
Нашел метод public RSACryptoServiceProvider (int dwKeySize) где в параметрах можно указать количество необходимых символов. Но как это сделать в подключении com объекта указать параметры? ОбъектШифрования = Новый COMОбъект("System.Security.Cryptography.RSACryptoServiceProvider "???-вот сюда"");
&НаСервере
Процедура ЗашифроватьНажатиеНаСервере()
ОбъектШифрования = Новый COMОбъект("System.Security.Cryptography.RSACryptoServiceProvider");
//генерируем новый приватный и публичный ключи
//в рабочей версии ключи требуется раздать пользователям и хранить
ПубличныйКлюч = "";
RSAСоздатьКлючи(ПубличныйКлюч); //, ПубличныйИПриватныйКлюч);
Сообщить("Публичный ключ:");
Сообщить(ПубличныйКлюч);
//Инициализация объект RSA, используя данные ключа из строки XML.
//
ОбъектШифрования.FromXmlString(ПубличныйКлюч);
//преобразование строки для шифрования в двоичный вид
ИсхТекстДвоичн = СтрокаВДвоичныйВид(ИсхТекстСтрока);
//шифруем
ЗашифрованныйТекстДвоичн = ОбъектШифрования.Encrypt(ИсхТекстДвоичн, False);
//преобразование зашифрованных данных в Base64
ЗашифрованныйТекстСтр = ДвоичныеДанныеВBase64(ЗашифрованныйТекстДвоичн);
Сообщить("Зашифрованный текст: ");
Сообщить(ЗашифрованныйТекстСтр);
ОбъектШифрования = Неопределено;
КонецПроцедуры
&НаСервере
Процедура RSAСоздатьКлючи(КлючШифрования) Экспорт //, КлючШифрованияИРасшифрования) Экспорт
//
ОбъектКриптографии = Новый COMОбъект("System.Security.Cryptography.RSACryptoServiceProvider");
КлючШифрования = ОбъектКриптографии.ToXmlString(False);
ОбъектКриптографии = Неопределено;
КонецПроцедуры
|
|