Наше приложение шифрует значение с помощью RC2 в коде C++, и я написал процедуру дешифрования в .NET.
Проблема в том, что он отлично работает на нашем сервере разработки, которым является Windows 2003, но не работает на сервере Windows 2000. Он запускает тот же код, и я проверил все остальное, и кажется, что есть различия в способе шифрования 2.
У кого-нибудь был опыт с этим?





Есть неясная проблема с шифрованием / дешифрованием win2000 / winxp. Поставщик услуг криптографии на win2000 имеет 40 для эффективной длины ключа и используется по умолчанию, даже если вы используете 128-битный ключ. Поэтому, чтобы исправить это, вам нужно вручную сбросить эффективную длину ключа на 2000 или вы можете установить ее на 40, прежде чем расшифровывать на winxp (или win2003 в моем случае).
Если вы используете C# для расшифровки, вы не можете установить эффективный размер ключа, отличный от размера ключа, если вы используете класс RC2CryptoServiceProvider.
Я столкнулся с той же проблемой между XP SP1 и XP SP2 с использованием поставщика услуг шифрования, зашифрованное значение отличается для 1 конкретной криптографии, которую я не могу вспомнить в настоящий момент.
Спасибо, Брайан. Проверю, есть ли у него sp3. Я пытался расшифровать с помощью 40-битных ключей, но это не помогло.