В своей работе мы выполняем шифрование для защиты данных, и эти данные шифруются с помощью .NET Compact Framework и должны считываться обычной платформой .NET на сервере.Мы сталкиваемся с проблемой, когда компактная структура не может зашифровать (исключение) с использованием RSA с известным открытым ключом.Сервер передает открытый ключ на устройство Compact Framework.Ниже показано тестовое приложение, написанное для компактной среды, чтобы показать проблему.
string mod =
"rgTcL0/ZK3j5Rt6CigEsfyLDiERh2PuVzmZVdHbb/2jQOG5JEcAqqBoscDZ4PwJR8aO19xNVTce7"
+ "vzbEued32z2PLAvCcHFKGtOgNEeZ+ZcD6uHobsKws76BdjBrI7Pigk2HSkak21n2WoVcBVHoRmcn"
+ "eX7DPaB4atamhkbLoRBF1VlautDfhX9lnOFA2zyZUCB5CproavKF6wl19pZne2Q4U1vMtBAA2Q9N"
+ "aZFsrj/KjE3UtYKvjd4Oy55Hmtpb5P3CZAVpiyCTKq3gTxDJn69giyctu428DgkKacmZ4yTvkLWB"
+ "Ym/zWtAf9o8pI+3MwgF7wzuK5ypGack3l4/Skw==";
string exp = "AQAB";
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(2048);
RSAParameters p = new RSAParameters();
p.Modulus = Convert.FromBase64String(mod);
p.Exponent = Convert.FromBase64String(exp);
rsa.ImportParameters(p);
var bytes = rsa.Encrypt(System.Text.Encoding.ASCII.GetBytes("MIKE"), true);
Этот код выдает следующее исключение при вызове метода "Encrypt":
Framework: 3.5.7283.0
Exception: fOAEP
InnerException: Could not evaluate expression
Stack Trace:
at System.Security.Cryptography.RSACryptoServiceProvider.Encrypt
(Byte[] rgb, Boolean fOAEP)
Кто-нибудьзнаете что-нибудь еще, что я должен попробовать / сделать?Я написал этот код в обычном .NET, и он работает просто отлично.Я могу зашифровать и расшифровать, используя разные экземпляры.Любая помощь будет оценена.
Спасибо!