Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

подключения через com (ключи шифрования) ошибка

подключения через com (ключи шифрования) ошибка
Я
   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.
    //http://msdn.microsoft.com/ru-ru/library/system.security.cryptography.rsa.fromxmlstring.aspx
    ОбъектШифрования.FromXmlString(ПубличныйКлюч);

    //преобразование строки для шифрования в двоичный вид
    ИсхТекстДвоичн = СтрокаВДвоичныйВид(ИсхТекстСтрока);
    
    //шифруем
    ЗашифрованныйТекстДвоичн = ОбъектШифрования.Encrypt(ИсхТекстДвоичн, False);

    //преобразование зашифрованных данных в Base64
    ЗашифрованныйТекстСтр = ДвоичныеДанныеВBase64(ЗашифрованныйТекстДвоичн);
    
        Сообщить("Зашифрованный текст: ");
    Сообщить(ЗашифрованныйТекстСтр);

    ОбъектШифрования = Неопределено;
    
КонецПроцедуры


&НаСервере
Процедура RSAСоздатьКлючи(КлючШифрования) Экспорт //, КлючШифрованияИРасшифрования) Экспорт
    
    //http://msdn.microsoft.com/ru-ru/library/system.security.cryptography.rsa.toxmlstring.aspx
    ОбъектКриптографии = Новый COMОбъект("System.Security.Cryptography.RSACryptoServiceProvider");
    КлючШифрования = ОбъектКриптографии.ToXmlString(False);
    ОбъектКриптографии = Неопределено;
    
КонецПроцедуры
   andrey i1c
 
1 - 03.08.20 - 18:45
проще говоря как получить параметр (1024) на стороне 1С в ком
new RSACryptoServiceProvider(1024);

Список тем форума
Рекламное место пустует  Рекламное место пустует
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.