生成公钥 – 私钥对并在asp.net的文本框中显示它们

任何机构都可以解释RSAParameters的参数我已经看过p,d,e,q等参数…我需要私钥和公钥来自它

我得到了链接

http://msdn.microsoft.com/en-us/library/system.security.cryptography.rsaparameters%28v=vs.90%29.aspx[^]

我正在使用示例代码,因为这样任何人都可以说它是正确的或不是示例代码:

//Generate a public/private key pair. RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(); //Save the public key information to an RSAParameters structure. RSAParameters RSAKeyInfo = RSA.ExportParameters(true); //public key TextBox5.Text = Convert.ToBase64String(RSAKeyInfo.Exponent); // private key TextBox6.Text = Convert.ToBase64String(RSAKeyInfo.D); 

他们给出公钥是{e,n},其中n =(P * Q)私钥的结果是{d,n},其中n =(P * Q)的结果

我所做的是公钥和私钥的示例代码中是否正确

非常感谢

使用BouncyCastle API

http://www.bouncycastle.org/

和以下类似的东西;

 public AsymmetricCipherKeyPair GenerateKeys(int keySizeInBits) { RsaKeyPairGenerator r = new RsaKeyPairGenerator(); r.Init(new KeyGenerationParameters(new SecureRandom(), keySizeInBits)); AsymmetricCipherKeyPair keys = r.GenerateKeyPair(); return keys; } 

您可以访问将具有的对象。 Public和。 具有正确格式化字符串的Private属性。

我不久前有一个类似的问题,这是我能找到的最好的解决方案。 我没有准确的代码,但是如果需要我会进入办公室时发布,但上述情况应该有效。

更新了代码

这是我用来生成公钥/私钥的代码。

  public static AsymmetricCipherKeyPair GenerateKeys(int keySizeInBits) { var r = new RsaKeyPairGenerator(); r.Init(new KeyGenerationParameters(new SecureRandom(),keySizeInBits)); var keys = r.GenerateKeyPair(); return keys; } static void Main(string[] args) { var keys = GenerateKeys(2048); var publicKey = keys.Public.ToString(); var textWriter = new StreamWriter("private.key"); var pemWriter = new PemWriter(textWriter); pemWriter.WriteObject(keys.Private); pemWriter.Writer.Flush(); textWriter.Close(); textWriter = new StreamWriter("public.key"); pemWriter = new PemWriter(textWriter); pemWriter.WriteObject(keys.Public); pemWriter.Writer.Flush(); textWriter.Close(); Console.ReadKey(); }