繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM