使用 Bouncy Castle 或 .Net RSACryptoServiceProvider 创建 RSA 公钥/私钥对

Mar*_*kus 5 .net c# cryptography rsa bouncycastle

因此,我对 .Net 的 RSACryptoServiceProvider 和 Bouncy Castle 进行了一些修改,以便能够创建 RSA 密钥对以及后来的 X509 证书。

我只是好奇是否有人知道这两个代码块之间是否有任何区别,我认为它们做同样的事情,但纯 Bouncy Castle 版本需要更长的时间才能完成。

.Net 与 Bouncy Castle:

private const int RsaKeySize = 4096;
public static AsymmetricCipherKeyPair GetKeyPairWithDotNet()
{
   using (RSACryptoServiceProvider rsaProvider = new RSACryptoServiceProvider(RsaKeySize))
   {
      RSAParameters rsaKeyInfo = rsaProvider.ExportParameters(true);
      return DotNetUtilities.GetRsaKeyPair(rsaKeyInfo);
   }
}
Run Code Online (Sandbox Code Playgroud)

纯充气城堡:

private const int RsaKeySize = 4096;
public static AsymmetricCipherKeyPair GetKeyPair()
{
   CryptoApiRandomGenerator randomGenerator = new CryptoApiRandomGenerator();
   SecureRandom secureRandom = new SecureRandom(randomGenerator);
   var keyGenerationParameters = new KeyGenerationParameters(secureRandom, RsaKeySize);

   var keyPairGenerator = new RsaKeyPairGenerator();
   keyPairGenerator.Init(keyGenerationParameters);
   return keyPairGenerator.GenerateKeyPair();
}
Run Code Online (Sandbox Code Playgroud)