Pido disculpas por responder una pregunta muy antigua, pero esto vino en una búsqueda mía y la respuesta seleccionada es incorrecta. Tal vez la respuesta elegida responda a la pregunta real del OP, pero la pregunta que se indica es sobre RSACryptoServiceProvider
vs AESCryptoServiceProvider
, mientras que la respuesta es sobre RjindaelManaged
vs AESCryptoServiceProvider
RjindaelManaged
es una implementación del algoritmo de Rjindael que luego se seleccionó para convertirse en la base del estándar de cifrado AES de NIST. AESCryptoServiceProvider
es la mejor opción para implementar el algoritmo AES / Rjindael. AES y Rjindael son ambos cifrados simétricos.
RSA, el sistema de cifrado Rivest-Shamir-Adleman, es un cifrado completamente diferente asimétrico . No tiene ninguna relación con AES / Rjindael.
La respuesta correcta a cuándo usar RSACryptoServiceProvider
vs AESCryptoServiceProvider
depende de usar un cifrado asimétrico vs simétrico.
En RSA, tienes un par de claves pública y privada. Si desea tener una clave pública para intercambiar, o si quiere que su clave sea firmada por otra parte, desea RSA. Pero RSA es comparativamente lento y se realiza correctamente en un solo sentido: la clave pública se encripta, la clave privada se descifra.
Si tienes mucho texto que deseas cifrar, quieres AES. Es mucho más rápido, y muchas computadoras están optimizadas para ello. Pero solo hay una llave. Cualquier persona con la clave puede cifrar y descifrar, lo que hace que compartir la clave de forma segura sea una prioridad.
Para lo mejor de ambos mundos, use un público RSA para cifrar y transmitir una clave AES y luego comunicarse utilizando AES.