Was ist der Unterschied zwischen der Verwendung von Rfc2898DeriveBytes und der Verwendung von Encoding.ASCII.GetBytes(string object);
?Warum muss ich die Rfc2898DeriveBytes-Klasse (in .NET) verwenden, anstatt das Kennwort direkt als Schlüssel oder IV zu verwenden?
Ich hatte relativen Erfolg mit beiden Ansatz, der erste ist ein langatmiger Ansatz, wo wie der letztere ist einfach und auf den Punkt. Beide scheinen es Ihnen zu ermöglichen, das Gleiche zu tun, aber ich kämpfe, um den Punkt zu erkennen, indem ich Ersteres über letzteres verwende. Das Grundkonzept, das ich verstehen konnte, ist, dass Sie String-Passwörter in Byte-Arrays konvertieren können, die beispielsweise für eine symmetrische Verschlüsselungsklasse AesManaged
verwendet werden. Über die RFC-Klasse können Sie beim Erstellen Ihres RFC-Objekts jedoch die salt-Werte und das Passwort verwenden. Ich nehme an, es ist sicherer, aber das ist immer noch eine ungebildete Vermutung! Außerdem können Sie damit Byte-Arrays einer bestimmten Größe zurückgeben.
Hier sind ein paar Beispiele, die Sie zu zeigen, wo ich komme: jetzt
byte[] myPassinBytes = Encoding.ASCII.GetBytes("some password");
oder
string password = "[email protected]%5w0r]>";
byte[] saltArray = Encoding.ASCII.GetBytes("this is my salt");
Rfc2898DeriveBytes rfcKey = new Rfc2898DeriveBytes(password, saltArray);
Die ‚rfcKey‘ Objekt kann die die .KEY in Richtung der Einrichtung verwendet werden oder .IV Eigenschaften auf einer symmetrischen Verschlüsselungsalgorithmusklasse.
dh.
'rj' sollte bereit sein zu gehen!
Der verwirrende Teil ... also kann ich nicht einfach das 'rfcKey'-Objekt verwenden, kann ich nicht einfach mein ' myPassInBytes'-Array verwenden, um mein 'rj'-Objekt einzurichten?
Ich habe versucht, dies in VS2008 und die sofortige Antwort ist nein. Aber haben Sie eine besser ausgebildete Antwort, warum die RFC-Klasse gegenüber der anderen Alternative, die ich oben erwähnt habe, verwendet wird?
Diese Frage bezieht sich auf die Überarbeitung und Vorbereitung auf die Prüfung! – IbrarMumtaz