he generado un nuevo par de claves pública/privada y se exportan como una cadena XML:Encriptación RSA en C#: ¿Qué parte define la clave pública?
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(2048);
string publicPrivateKey = RSA.ToXmlString(true);
La cadena XML en publicPrivateKey se parece a esto (cuerdas se acortan para facilitar la lectura):
<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>
La clave pública generada se debe usar en otras aplicaciones (PHP/JavaScript/JAVA) para cifrar datos. ¿Qué parte del XML anterior define la clave pública/qué parte debo enviar a los desarrolladores de las otras aplicaciones?
Y en el lado opuesto: ¿Qué define la clave privada/qué parte/partes debo almacenar para poder descifrar los datos cifrados por mi clave pública?
Creo que te refieres a '.ToXmlString (false)'. http://msdn.microsoft.com/en-us/library/system.security.cryptography.rsa.toxmlstring.aspx indica que el bool es includePrivateParameters. –
bien, gracias. Entonces, ¿puedo enviar este XML (RSA.ToXmlString (false);) a los desarrolladores y podrán cifrar datos con PHP, JAVA, etc.? – Mike
@Mike Bueno, en el mundo ideal es así :) Pero debe preguntarles sobre el formato de clave pública que necesitan de usted, y proporcione la clave en este formato. Use enlaces de respuesta, es fácil regenerar la clave pública usándolos. – VMAtm