【发布时间】:2013-07-15 14:56:22
【问题描述】:
我正在编写一个使用 PKI 来保护电子邮件、文件等的应用程序。
使用System.Cryptography 命名空间,我正在使用RSACryptoServiceProvider 生成一个新的密钥对。
方法是:
public static void GenerateKeys(int keySize, out string publicKey, out string privateKey)
{
using (var provider = new RSACryptoServiceProvider(keySize))
{
publicKey = provider.ToXmlString(false);
privateKey = provider.ToXmlString(true);
}
}
keySize = 2048。
这会产生一个像这样的公钥(为了整洁,它已经用“-----START/END PUBLIC KEY BLOCK-----”包装器修剪/填充。
-----START PUBLIC KEY BLOCK-----
<RSAKeyValue><Modulus>xs1GwyPre7/knVd3CAO1pyk++yp/qmBz2TekgrehYT
WU7hs8bUCeVQrL2OB+jm/AgjdPMohWHD/tLcJy35aZgVfPI3Oa3gmXxdoLZrfNRb
nrCm3Xr1MR7wnhMyBt5XXyU/FiF46g5qJ2DUIUg7teoKDNUSAN81JTIoH0KC+rZB
oO3tu9PR7H75K5G2eT6oUWkWKcZZU/4WNCDasNtizTe41Jy99BjrChww5r2ctqG8
LvIv7UeeFaK1vhxGKaNH/7JvKJI9LbewWNtmb/nRzQg9xK3e0OhblbW+o6zg5pTw
+n37fS7pkXK7lbRfUfaQmhoGy6ox4UWGmOgm8yPu8S4Q==</Modulus><Exponen
t>AQAB</Exponent></RSAKeyValue>
-----END PUBLIC KEY BLOCK-----`
当我查看基于 PGP 的公钥(或私钥)时,密钥中没有 <RSAKeyValue>、<Modulus> 或 <Exponent> 值。
我做错了吗?我错过了什么吗?如果我分发此密钥,这是一个安全问题吗?
加密对我来说是一个令人兴奋的新领域,所以我非常感谢这里的任何指导。我担心我搞砸了 - 加密密钥工作并使用私钥解密工作 - 我只是想知道 PGP/GPG 密钥在外观上有何不同以及我需要做些什么来纠正这个问题?
提前谢谢你!
【问题讨论】:
标签: rsa pki rsacryptoserviceprovider