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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top