从RSA提供程序导出参数在monodevelopec中需要很长时间

本文关键字:monodevelopec 长时间 参数 RSA 程序 | 更新日期: 2023-09-27 18:00:34

我把RSA加密方法带到了MonoDevelop项目中。它已经工作了,但在mono中
ExportParameters()函数需要4-5分钟。我听不懂。谢谢你的帮助。

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
RSAParameters rsaPar = rsa.ExportParameters(false);

从RSA提供程序导出参数在monodevelopec中需要很长时间

您可以在RSACryptoServiceProvider类的源代码中找到答案:

public RSACryptoServiceProvider ()
    : this (1024)
{
    // Here it's not clear if we need to generate a keypair
    // (note: MS implementation generates a keypair in this case).
    // However we:
    // (a) often use this constructor to import an existing keypair.
    // (b) take a LOT of time to generate the RSA keypair
    // So we'll generate the keypair only when (and if) it's being
    // used (or exported). This should save us a lot of time (at 
    // least in the unit tests).
}

正如您所看到的,ExportParameters()方法正在执行RSA密钥对生成,这是一个耗时的操作。它实际需要多少时间取决于所使用的PRNG类型,以及系统上是否有足够的熵来为其播种。