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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top