Qual è la differenza tra l'utilizzo di Rfc2898DeriveBytes e l'utilizzo di Encoding.ASCII.GetBytes(string object);
?Perché è necessario utilizzare la classe Rfc2898DeriveBytes (in .NET) anziché utilizzare direttamente la password come chiave o IV?
Ho avuto un successo relativo con entrambi gli approcci, il primo è un approccio più lungo e tortuoso in cui quest'ultimo è semplice e preciso. Entrambi sembrano permetterti di fare la stessa cosa alla fine, ma mi sto sforzando di vedere il punto in cui usare la prima su quest'ultima.
Il concetto di base sono stato in grado di cogliere è che è possibile convertire le password stringa in array di byte da utilizzare per es una classe crittografia simmetrica, AesManaged
. Tramite la classe RFC, ma è possibile utilizzare i valori salt e la password durante la creazione dell'oggetto rfc. Presumo che sia più sicuro, ma comunque è un'ipotesi non istruita al meglio! Inoltre, ti permette di restituire array di byte di una certa dimensione, anche qualcosa del genere.
Ecco alcuni esempi per mostrare dove vengo da:
byte[] myPassinBytes = Encoding.ASCII.GetBytes("some password");
o
string password = "[email protected]%5w0r]>";
byte[] saltArray = Encoding.ASCII.GetBytes("this is my salt");
Rfc2898DeriveBytes rfcKey = new Rfc2898DeriveBytes(password, saltArray);
L'oggetto 'rfcKey' possono ora essere utilizzati verso la creazione della del .Key o Proprietà .IV in una classe di algoritmo di crittografia simmetrica.
ie.
RijndaelManaged rj = new RijndaelManaged();
rj.Key = rfcKey.Getbytes(rj.KeySize/8);
rj.IV = rfcKey.Getbytes(rj.Blocksize/8);
'rj' dovrebbe essere pronto per andare!
La parte confusa ... quindi piuttosto che utilizzare l'oggetto 'rfcKey' non posso semplicemente usare la mia matrice 'myPassInBytes' per aiutare a configurare il mio oggetto 'rj'?
Ho provato a farlo in VS2008 e la risposta immediata è NO. Ma voi ragazzi avete una risposta più istruita sul motivo per cui la classe RFC viene utilizzata rispetto all'altra alternativa che ho menzionato sopra?
Questa domanda è in relazione alla revisione e preparazione per l'esame! – IbrarMumtaz