Не выполняется проверка ЭЦП из 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
219 +1
0
Ответы
1

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

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

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

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

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

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

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

20 Апр 2024 в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир