How to speed up RSA key pair generation process

给你一囗甜甜゛ 提交于 2019-12-25 11:51:11

问题


I am using below code to generate 10000 RSA key pairs. It seems to be taking very long (takes around 25-30 minutes):

for (int i = 0; i < 10000; i++)
{
    String[] arr = GenerateKeys(1024);
}

public static string[] GenerateKeys(int keySizeInBits)
{
    var r = new RsaKeyPairGenerator();
    r.Init(new KeyGenerationParameters(new SecureRandom(), keySizeInBits));
    var keyPair = r.GenerateKeyPair();
    var publicKey = string.Empty;
    using (var stream = new MemoryStream())
    {
        var textWriter = new StreamWriter(stream);
        var pemWriter = new PemWriter(textWriter);
        pemWriter.WriteObject(keyPair.Public);
        pemWriter.Writer.Flush();
        stream.Position = 0;
        var sr = new StreamReader(stream);
        publicKey = sr.ReadToEnd();
        textWriter.Close();
    }

    var privateKey = string.Empty;
    using (var stream = new MemoryStream())
    {
        var textWriter = new StreamWriter(stream);
        var pemWriter = new PemWriter(textWriter);
        pemWriter.WriteObject(keyPair.Private);
        pemWriter.Writer.Flush();

        stream.Position = 0;
        var sr = new StreamReader(stream);
        privateKey = sr.ReadToEnd();
        textWriter.Close();
    }

    return new string[] { publicKey, privateKey };
}

How can I make it faster? (multithreading maybe?)

来源:https://stackoverflow.com/questions/44386101/how-to-speed-up-rsa-key-pair-generation-process

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!