El cifrado RSA devuelve resultados diferentes
-
21-12-2019 - |
Pregunta
Soy nuevo en el cifrado RSA y he estado intentando aprender cómo funciona exactamente usando .Net. System.Security.Cryptography
.
public String Encryption(Byte[] Input, RSAParameters PublicKey)
{
RSAC = new RSACryptoServiceProvider();
RSAC.ImportParameters(PublicKey);
Byte[] Encrypt = RSAC.Encrypt(Input, false);
return Convert.ToBase64String(Encrypt);
}
Usando el código anterior, obtengo una cadena cifrada diferente para la misma entrada cada vez que reinicio la aplicación.Me gustaría saber si este es un comportamiento normal y en caso de que no lo sea, cómo prevenirlo.
Por ejemplo, el programa devuelve la siguiente cadena para la entrada "Hola":
NopDAF5FRu....
Cuando reinicio la aplicación, la salida para la misma entrada será:
pPPu8x6....
Sin embargo, cuando creo nuevos objetos para mi clase de cifrado RSA, todos los objetos devuelven el mismo resultado.
Solución
Eso es totalmente normal y está bien.Los datos que se cifran se colocan dentro de un bloque que se rellena con aleatorio valores.Luego se cifra con el público llave.
Mira esto Preguntas y respuestas para más detalles.