|
подключения через com (ключи шифрования) ошибка | ☑ | ||
|---|---|---|---|---|
|
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. //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); ОбъектКриптографии = Неопределено; КонецПроцедуры |
|||
|
1
andrey i1c
03.08.20
✎
18:45
|
проще говоря как получить параметр (1024) на стороне 1С в ком
new RSACryptoServiceProvider(1024); |
| Форум | Правила | Описание | Секции | Поиск |