有没有办法使用从RSACryptoServiceProvider获取的公钥来解析数据,通过其ToXmlString(false)方法?
如果我运行下面的代码,我会收到“解码OAEP填充时出错”。 如果我使用私钥进行解密,它可以正常工作。
我需要创建一个系统,我们可以使用公司私钥加密某些数据,然后使用应用程序内部的公钥对其进行解密,并确保数据是安全的并且是从我们发送的
// For creating keys
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(512);
string keyPrivate = rsa.ToXmlString(true);
string keyPublic = rsa.ToXmlString(false);
byte[] dataToEncrypt = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
// For encrypting using private key
RSACryptoServiceProvider rsaE = new RSACryptoServiceProvider(2048);
rsaE.FromXmlString(keyPrivate);
byte[] encrypted = rsaE.Encrypt(dataToEncrypt, true);
// For decrypting using public key
RSACryptoServiceProvider rsaD = new RSACryptoServiceProvider();
rsaD.FromXmlString(keyPublic);
byte[] decrypted = rsaD.Decrypt(encrypted, true);