Genera una coppia di chiavi pubblica-privata e mostrale nella casella di testo in asp.net

qualsiasi corpo può spiegare i parametri di RSAParameters ho visto i parametri come p, d, e, q, … ho bisogno della chiave privata e della chiave pubblica da esso

ho il link

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

sto usando il codice di esempio come se qualcuno potesse dire che era giusto o no codice di esempio:

//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); 

avevano dato che la chiave pubblica è {e, n} dove n = risultato della (P * Q) chiave privata è {d, n} dove n = risultato della (P * Q)

dove ho fatto è la cosa corretta o non nel codice di esempio per le chiavi pubbliche e private

molte grazie

Utilizzo dell’API BouncyCastle

http://www.bouncycastle.org/

e qualcosa di simile a quanto segue;

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

È ansible accedere a un object che avrà a. Public e. Proprietà Private con le stringhe formattate correttamente.

Ho avuto un problema simile qualche tempo fa e questa è stata la soluzione migliore che ho trovato. Non ho il codice esatto a portata di mano, ma lo posterò quando arriverò in ufficio se necessario, ma quanto sopra dovrebbe funzionare.

Aggiornato con il codice

Questo è il codice che ho usato per generare chiavi pubbliche / 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(); }