[英]How to Encrypt RSA Key in Xamarin.Forms
我有一个来自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来实现它。
您可以使用Dependency Service并使用EncryptRSA
方法创建一个接口,然后在解决方案的平台头中实现此接口。 您已经有了UWP实现, 此SO答案似乎是可能的iOS解决方案,并且这是可能的Android实现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.