Не выполняется проверка ЭЦП из 1С с помощью C#. В чём различия? В C# не получается выполнить проверку ЭЦП наложенную в 1С. В шарпе пишу:X509Certificate2 certificate = new X509Certificate2(fileP12, "PASSWORD");
RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)certificate.PrivateKey;
var hash = sha1.ComputeHash(new UnicodeEncoding.GetBytes(input));
rsa.SignHash(hash, CryptoConfig.MapNameToOID("SHA1"));
Пробовал подписывать и файл и строку. Всё работает. Но подпись сделанная программистом в 1С не совпадает.
Ключ один. Хэш "SHA1" у обоих. С кодировкой тоже поигрался... В чём могут быть различия?

21 Авг 2019 в 07:12
189 +1
0
Ответы
1

Существует несколько потенциальных причин, почему проверка ЭЦП, созданной в 1С, не совпадает с проверкой, выполненной с использованием C#. Ниже приведены некоторые возможные причины:

Алгоритм хеширования: Убедитесь, что обе программы используют один и тот же алгоритм хеширования. Например, если в 1С используется алгоритм SHA-256, а в C# используется SHA-1, подписи могут не совпадать.

Формат данных: Учитывайте формат данных, которые подписывает каждая программа. Возможно, в 1С производится подпись не только самого текста, но и каких-то дополнительных метаданных, которые не учитываются в C#.

Проблемы с ключами: Убедитесь, что приватные ключи, используемые для создания подписи, корректно передаются между программами и не подвергаются каким-либо изменениям.

Проблемы с кодировкой: Убедитесь, что обе программы используют одинаковую кодировку при вычислении хеш-значения. В приведенном вами коде для C# используется UnicodeEncoding, возможно, в 1С используется другая кодировка.

Использование сертификатов: Убедитесь, что в программе C# правильно импортирован сертификат, используемый для проверки подписи.

Для того чтобы точно выявить причину различий в проверке ЭЦП, рекомендуется более детально изучить спецификации и настройки обеих программ, например, алгоритмы, используемые ключи, форматы данных и т. д. Также полезно сравнить подписи, созданные в обоих программах, для того чтобы более точно определить различия.

20 Апр в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 706 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир