Windows 2000 и Windows 2003 RC2 шифрование / дешифрование с использованием Windows Crypto API? - PullRequest
1 голос
/ 24 ноября 2008

Наше приложение шифрует значение с помощью RC2 в коде C ++, и я написал процедуру расшифровки в .NET

Проблема в том, что он отлично работает на нашем dev-сервере, который является Windows 2003, но не работает на Windows 2000. Он запускает тот же код, и я проверил все остальное, и, кажется, есть различия в способе шифрования 2.

Кто-нибудь имел с этим опыт?

Ответы [ 3 ]

1 голос
/ 24 ноября 2008
  1. Убедитесь, что в Windows 2000 установлен пакет обновления 3 (SP3), иначе шифрование с меньшей вероятностью будет работать, особенно если используется Capicom (или API-интерфейс, в который он упакован).
  2. Не все алгоритмы шифрования и длины ключей поддерживаются в Windows 2000 при использовании Capicom (или API-интерфейсов, которые он переносит).
0 голосов
/ 25 ноября 2008

Я столкнулся с той же проблемой между XP SP1 и XP SP2, использующими поставщика услуг шифрования, зашифрованное значение отличается для 1 конкретного шифрования, которое я не могу вспомнить в данный момент.

0 голосов
/ 25 ноября 2008

Существует неясная проблема с шифрованием / дешифрованием win2000 / winxp. У поставщика услуг криптографии на win2000 есть 40 для эффективной длины ключа, и это используется по умолчанию, даже если вы используете 128-битный ключ. Итак, чтобы исправить это, вам нужно вручную сбросить эффективную длину ключа на 2000 или вы можете установить ее на 40, прежде чем расшифровать на winxp (или win2003 в моем случае).

Если вы используете C # для расшифровки , вы не можете установить эффективный размер ключа, отличный от размера ключа, если вы используете класс RC2CryptoServiceProvider.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...