c# - C# : What part defines the public key? 中的 RSA 加密

标签 c# .net cryptography rsa public-key-encryption

我生成了一个新的公钥/私钥对并将其导出为 XML 字符串:

RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(2048);  
string publicPrivateKey = RSA.ToXmlString(true);

publicPrivateKey 中的 XML 字符串如下所示(为了便于阅读,字符串被缩短):

<RSAKeyValue>
   <Modulus>t6tLd1Wi7PEkwPfx9KGP1Ps/5F2saXnOsCE2U....</Modulus>
   <Exponent>AQAB</Exponent>
   <P>3LJ5y4Vla7cS3XgmbIH5dQgppUHa+aSWavEOCbDRS/M....</P>
   <Q>1QyGIAnjv4YLcRVdwXtxWkijc+aZ496qIBZnCAUUD/E....</Q>
   <DP>0821dc0f+LBKOqIEvj4+2kJrNV5ueQesFBYkEsjPFM....</DP>
   <DQ>ugSzX2oDJwjdGKG1OOiVcmUWAm6IU4PpOxcUYtY8TC....</DQ>
   <InverseQ>LDQIQu+LSB6CSZBrGxNQthWi9mkuPGVZyDDr....</InverseQ>
   <D>qZm2bXKH8WwbsJ8ZlT3S1TbgUifppLrqSRkb8XqEcMv....</D> 
</RSAKeyValue>

生成的公钥应该在其他应用程序(PHP/JavaScript/JAVA)中用于加密数据。以上 XML 的哪一部分定义了公钥/我必须将哪一部分发送给其他应用程序的开发者?

另一方面:什么定义了私钥/我必须存储哪些部分才能解密由我的公钥加密的数据?

最佳答案

指数和模数定义公钥。

如果您使用 RSA.ToXmlString将其唯一参数 includePrivateParameters 设置为 false,您只会看到格式

<RSAKeyValue>
   <Modulus>…</Modulus>
   <Exponent>…</Exponent>
</RSAKeyValue>

输出。

关于c# - C# : What part defines the public key? 中的 RSA 加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6636476/

相关文章:

c# - Entity Framework 的种子方法错误,未在代码优先模型中创建表

c# - 哪个更好 : dictionary or hashtable

ios - 为什么 Swift5 上的 CryptoSwift 文本加密失败?

c# - 抽象 UI 数据格式

c# - ASP.NET WebAPI OData 406

c# - 如何使用 ffmpeg.exe 命令行从硬盘上的图像数量创建视频文件?

.net - 如果您必须创建类似 ReSharper 的东西,您会从哪里开始?

cryptography - Java Card 中没有 AES 密码的填充

android - Android 上的公钥加密

c# - 什么是 C# 中的公共(public)获取/保护集属性的 Objective-C 等价物