使用完整.NET Framework中的公钥,.NET Compact Framework中的RSA RSACryptoServiceProvider

|| 在我的工作中,我们正在进行加密以保护数据,并且该数据已由.NET Compact Framework加密,并且必须由服务器上的常规.NET框架读取。我们遇到一个问题,即紧凑框架无法使用具有已知公钥的RSA进行加密(引发异常)。服务器将公钥传递到紧凑型框架设备。下面是为紧凑型框架编写的测试应用程序,用于显示问题。
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中编写了此代码,并且效果很好。我可以使用不同的实例进行加密和解密。任何帮助,将不胜感激。 谢谢!     
已邀请:
        Compact Framework不支持为fOAEP参数使用true值(至少在版本3.5中)。有关参数的详细信息,请参阅http://msdn.microsoft.com/zh-cn/library/system.security.cryptography.rsacryptoserviceprovider.encrypt.aspx。 在CF 3.5中,对“ 2”的支持似乎与设备无关。取而代之的是,在Encrypt方法中将拒绝3值作为参数验证进行硬编码。     

要回复问题请先登录注册