任何机构都可以解释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)的结果
我所做的是公钥和私钥的示例代码中是否正确
非常感谢
答案 0 :(得分:10)
使用BouncyCastle API
以及类似的内容;
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();
}