Я сгенерировал новую пару открытого / закрытого ключей и экспортировал ее как строку XML:
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(2048);
string publicPrivateKey = RSA.ToXmlString(true);
Строка XML в publicPrivateKey выглядит так (строки сокращены для удобства чтения):
<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 определяет открытый ключ / какую часть я должен отправить разработчикам других приложений?
И с противоположной стороны: что определяет закрытый ключ / какую часть / части я должен хранить чтобы иметь возможность расшифровать данные, зашифрованные моим открытым ключом?