使用RSACryptoServiceProvider进行公钥解密

时间:2015-03-04 15:03:03

标签: c# encryption cryptography rsa rsacryptoserviceprovider

有没有办法使用从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);

0 个答案:

没有答案