生成公私密钥对,并将其显示在asp.net的文本框中
本文关键字:net asp 文本 显示 密钥对 | 更新日期: 2023-09-27 18:00:39
任何主体都可以解释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;
}
您可以访问将具有的对象。CCD_ 1和。具有正确格式字符串的Private
属性。
不久前我遇到了一个类似的问题,这是我能找到的最好的解决方案。我手头没有确切的代码,但如果需要,我会在进入办公室时发布,但以上应该可以。
使用代码更新
这是我用来生成公钥/私钥的代码。
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Crypto.Generators;
using Org.BouncyCastle.Security;
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();
}