Domanda

Sono nuovo alla crittografia RSA e ho cercato di imparare come funziona esattamente usando il 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);
    }
.

Utilizzando il codice sopra, ottengo una diversa stringa crittografata per la stessa Innput, in qualsiasi momento riavvio dell'applicazione.Mi piacerebbe sapere se questo è un comportamento normale e nel caso non lo sia, come impedirlo.

ad esempio il programma restituisce la stringa sotto per l'ingresso "Ciao":

NopDAF5FRu....
.

Quando riavvio l'applicazione l'uscita per lo stesso ingresso sarà:

pPPu8x6....
.

Tuttavia quando creo nuovi oggetti per la mia classe di crittografia RSA, tutti gli oggetti restituiscono la stessa uscita.

È stato utile?

Soluzione

È totalmente normale e fine.I dati crittografati vengono inseriti all'interno di un blocco imbottito con i valori Random .Questo è quindi crittografato con il tasto Public .

Vedi questo Quindi Domande e risposte per ulteriori dettagli.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top