2017-01-17 2 views
-2

Beim Lesen von Posts zur Verschlüsselung und Entschlüsselung in C# verstehe ich, dass AES-Algorithmus einen Schlüssel benötigt. Ich habe festgestellt, dass wir einen Schlüssel mit der Klasse Rfc2898DeriveBytes erzeugen können. Obwohl ich nicht verstehen kann, ob der abgeleitete Schlüssel verschlüsselt ist oder nicht.Rfc2898DeriveBytes gibt den verschlüsselten Schlüssel zurück?

Wenn der Schlüssel nicht verschlüsselt ist, muss ich es Hash vor dem Speichern in der Windows-Registrierung?

+2

Bitte beziehen Sie sich vor einer Anfrage http://StackOverflow.com/Help/How-to-ask – Prasad

+1

Nein, es ist nicht verschlüsselt. Es ist * kryptographisch Hashed *. * Verschlüsselte * Schlüssel können abgerufen werden. Starke Hashes kann nicht –

+0

Also kann ich diesen Schlüssel in der Windows-Registrierung speichern oder muss ich etwas anderes tun, bevor Sie es speichern? –

Antwort

2

Rfc2898DeriveBytes verschlüsselt das Passwort nicht, es erzeugt einen starken Hash, der als Schlüssel zur AES-Verschlüsselung verwendet werden kann.

Durch Verwendung eines Salzes und Hashing ein paar tausend Mal stellt es sicher, dass die resultierenden Schlüssel fast zufällig sind und nicht erraten werden können, selbst wenn das ursprüngliche Passwort sehr schwach ist.

Verwandte Themen