Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/51: Рейтинг темы: голосов - 51, средняя оценка - 4.69
DSPIC

Цифровая подпись RSA+SHA1 - как реализовать?

19.03.2011, 16:26. Показов 9824. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Коллеги, у нас в компании встала задача по интеграции нашей системы с платежными системами.
Обмен информацией проиходит с помощью подписанных xml-сообщений.
Тема подписи xml для нас новая, и никто не знает, как корректно с этим работать.
Каждое xml-сообщение включает в себя тег "sign", содержащий цифровую подпись. Реализовали обработчик платежей на IIS 7 - код на C#, содержится в файлах .cs, находящихся в директории сайта.
Реализация цифровой подписи осуществляется следующим образом:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public void signXML(XmlDocument _xmlDoc)
    {
        CspParameters parms = new CspParameters();
        parms.KeyContainerName = "MyContainerName";
        
        RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(1024,parms);
 
        byte [] buffer = Encoding.GetEncoding(1251).GetBytes(_xmlDoc.InnerXml);
 
        byte [] signature = rsa.SignData(buffer, new SHA1CryptoServiceProvider());
 
        string signStr = BitConverter.ToString(signature).Replace("-","");
 
        XmlNode root = _xmlDoc.ChildNodes[1];
        root.AppendChild(_xmlDoc.CreateElement("sign")).InnerText = signStr;
    
    }
Этим кодом мы подписываем xml, который уходит от нас платежной системе. Споткнулись вот на чем: нам нужно выслать сотрудникам, обслуживающим эти платежные системы наш открытый ключ - и вот тут засада: они хотят получить ключ в формате .pem, а с помощью метода rsa.ToXmlString(true) мы можем выгрузить этот ключ только в xml формате. Как преобразовать xml, полученный классом RSACryptoServiceProvider в формат PEM ? Возможно, мы вообще делаем что-то не так? ПОдскажите, пожалуйста.

Можно ещё пойти по-другому пути: мы сгенерировали пару ключей в PEM-формате, но как их можно поместить в контейнер CSP и использовать в классах, приведенных в коде?
В общем - мы совсем чайники в этом, помогите плиз!
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.03.2011, 16:26
Ответы с готовыми решениями:

Цифровая подпись файла и RSA: Требуется гарантировать достоверность владельца файла и его содержимого
Здравствуйте, Требуется гарантировать достоверность владельца файла и его содержимого. Т.е. есть коллекция файлов(текстовые конфиги...

Реализовать цифровую подпись RSA
Здравствуйте. Пытаюсь реализовать цифровую подпись RSA. Работает на небольших числах, а на больших не работает. Результат работы...

Цифровая подпись приложения
Здравствуйте. Написал программу на c#, задача проста - быть точно уверенным, что программу не изменяли и она находится в исходном виде на...

3
145 / 145 / 26
Регистрация: 09.10.2009
Сообщений: 261
19.03.2011, 20:13
На одном форуме вычитал:
Если Ваш подписанный сертификат изначально был сгенерирован в файле другого формата, то его (как и сам ключ) можно преобразовать в pem утилитой openssl.
1
 Аватар для afiskon
65 / 53 / 4
Регистрация: 06.09.2010
Сообщений: 254
22.03.2011, 13:55
У меня сейчас нет возможности проверить, но я на 90% уверен, что pem имеет текстовый формат. Так что его можно открыть любым текстовым редактором и разобраться, что в нем и как хранится.
0
DSPIC
27.03.2011, 13:07
Разобрались, всем спасибо.

Из .pem (формат openssh) в xml (формат .net) конвертитися с помощью opensslkey.exe. Проверил, всё работает.
Как из xml в pem - не знаю, не понадобилось.

2 afiskon:

оба представления ключа - и pem и xml текстовые, но имеют разный формат.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.03.2011, 13:07
Помогаю со студенческими работами здесь

Электронная цифровая подпись в сети
Не совсем понятен алгоритм работы Электронно-цифровой подписи по сети. Допустим есть два компьютера. Мы выбираем файл- программа...

RSA2 и Электронно цифровая подпись
Всем доброго времени суток. Такой вот вопрос, для начала общий и не совсем имеющий отношение к программированию. Читаю интернет и...

Где в сборке хранится цифровая подпись?
Такой вопрос: где в сборке хранится цифровая подпись (зашифрованное хеш-значение)? // Microsoft (R) .NET Framework IL...

Цифровая подпись, алгоритм RSA
можете, пожалуйста, показать самый простой пример программы реализации алгоритма RSA... не нашла на форуме простых примеров...

Как создать электронно-цифровую подпись на основе алгоритма RSA?
Пытаюсь создать цифровую подпись для файла на основе алгоритма RSA. Написал вот такую программу ,не конца конечно.Шифрую хэш сумму ,но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru