Criptografia RSA retornando saída diferente
-
21-12-2019 - |
Pergunta
Sou novo na criptografia RSA e tenho tentado aprender exatamente como ela funciona 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 o código acima, obtenho uma string criptografada diferente para a mesma entrada sempre que reinicio o aplicativo.Gostaria de saber se esse é um comportamento normal e caso não seja, como evitá-lo.
Por exemplo, o programa retorna a string abaixo para a entrada "Hello":
NopDAF5FRu....
Quando eu reiniciar o aplicativo, a saída para a mesma entrada será:
pPPu8x6....
No entanto, quando crio novos objetos para minha classe de criptografia RSA, todos os objetos retornam a mesma saída.
Solução
Isso é totalmente normal e multa.Os dados que estão sendo criptografados são colocados dentro de um bloco que é preenchido com aleatórios valores.Que é então criptografado com a chave
ver este então Q & A Para mais detalhes.