I'm new to RSA encryption and I've been trying to learn how exactly it works using .Net's 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);
}
Using the above code, I get a different encrypted string for the same intput, anytime I restart the application. I would like to know if this is a normal behavior and in case it is not, how to prevent it.
For example the program returns the below string for the input "Hello" :
NopDAF5FRu....
When I restart the application the output for the same input will be :
pPPu8x6....
However when I create new objects for my RSA Encryption class, all objects return the same output.