问题
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