C# 如何在Xamarin.Forms中加密RSA密钥

C# 如何在Xamarin.Forms中加密RSA密钥,c#,xamarin.forms,uwp,xamarin.android,C#,Xamarin.forms,Uwp,Xamarin.android,我有一个来自CCAvenue的Windows代码,它在通用Windows应用程序中运行良好,但如何在Xamarin.Forms中实现同样的功能 public string EncryptRSA(string plainText, string publicKeyString) { IBuffer dataBuffer = CryptographicBuffer.ConvertStringToBinary(plainText, BinaryStringEncoding.Utf8);

我有一个来自CCAvenue的Windows代码,它在通用Windows应用程序中运行良好,但如何在Xamarin.Forms中实现同样的功能

public string EncryptRSA(string plainText, string publicKeyString) 
{
    IBuffer dataBuffer = CryptographicBuffer.ConvertStringToBinary(plainText, BinaryStringEncoding.Utf8);
    var asymmAlg = AsymmetricKeyAlgorithmProvider.OpenAlgorithm(AsymmetricAlgorithmNames.RsaPkcs1);
    var publicKey = asymmAlg.ImportPublicKey(CryptographicBuffer.DecodeFromBase64String(publicKeyString), CryptographicPublicKeyBlobType.X509SubjectPublicKeyInfo);
    var encryptedData = CryptographicEngine.Encrypt(publicKey, dataBuffer, null);
    return CryptographicBuffer.EncodeToBase64String(encryptedData);
}
如果复制粘贴相同的代码,则会出现以下错误:


不幸的是,您不能在Xamarin.Forms中的其他平台上使用此特定于UWP的API。我还没有找到一个替代库,它可以以跨平台的方式提供此功能,因此您可能必须使用特定于平台的API来实现它


您可以使用
EncryptRSA
方法使用并创建一个接口,然后在解决方案的平台头中实现该接口。你已经有了UWP实现,看起来像是一个可能的iOS解决方案,是一个可能的Android实现。

如果你把它粘贴到XAMARIN窗体中会发生什么?我已经在问题中附加了屏幕截图。请检查NoGuff.UniValSalPaCopTrac.WiMD的参考窗口。我没有发现Nuget ManagerI的Microsoft.Windows.SDK.Contracts包使用了可能的android实现,但其显示错误“Base.64在当前上下文中不存在”。我必须导入Android.Util还是什么?谁能告诉我如何使用.SO在Xamarin.Android中实现上述答案