Search code examples
c#cryptographyrsarsacryptoserviceprovider

Generate random RSA keys with RSACryptoServiceProvider


How do I generate random RSA public and private keys (RSAParameters) using RSACryptoServiceProvider class? Each time I create a new instance of RSACryptoServiceProvider, I end up exporting the same keys.

Thanks


Solution

  • I did some test on the following code, and the exported parameters are always different:

    var rsaAlgo1 = new RSACryptoServiceProvider();
    var rsaAlgo2 = new RSACryptoServiceProvider();
    
    var xml1 = rsaAlgo1.ToXmlString(true);
    var xml2 = rsaAlgo2.ToXmlString(true);
    
    if (xml1 != xml2)
    {
       // it always goes here...
    }