Frage

Ich habe überall in Google gesucht und kann kein Codebeispiel für die Verschlüsselungsnutzung (zum Hashen eines Passworts) mit dem finden Cryptsharp Bibliothek.

Können Sie bitte ein Beispiel für das Hashing des Passworts bereitstellen?

War es hilfreich?

Lösung

Es ist nur ein einziger Anruf also werde ich Sie durch die Parameter führen:

  1. key:verwenden Sie die UTF-8-Codierung (ohne Bytereihenfolgemarkierung), um Ihr Passwort in ein Byte-Array zu codieren;
  2. salt:eine Zeichenfolge sicherer zufälliger Bytes, die mit dem Ergebnis der scrypt-Funktion gespeichert wird, 16 Bytes sollten ausreichend sein;
  3. cost:der angegebene Vorschlag lautet 262144, aber Sie möchten diesen Wert möglicherweise erhöhen, wenn Ihr Server die zusätzliche Last bewältigen kann;
  4. blockSize:siehe Kosten, der angegebene Vorschlag ist 8;
  5. parallel:Ich würde dies auf 1 belassen, es sei denn, Sie möchten mit Multithreading experimentieren;
  6. maxThreads:generell null wird gut tun;
  7. derivedKeyLength:nun, das hängt davon ab, dass für Passwörter 128 ausreichend sein sollten, es ist unwahrscheinlich, dass Ihr Passwort mehr als 128 Bit Sicherheit hat.

Sie sollten mindestens das Salz und das Ergebnis aufbewahren.Möglicherweise möchten Sie die Base 64-Codierung verwenden, wenn Sie sie als Zeichenfolgen speichern möchten.

Ich würde Ihnen empfehlen, ein zusätzliches Datenelement zu speichern:eine Version Ihres passwortbasierten Schlüsselableitungsschemas (PBKDF).Sagen Sie, stellen Sie es auf 1 für die Verwendung von Scrypt unter Verwendung der angegebenen Schlüsselcodierung, Salzgröße, Kosten, Blockgröße usw.In diesem Fall können Sie Ihr Schema später aktualisieren (dazu muss der Benutzer sein Kennwort angeben, sodass Sie dies online tun müssen, damit am Ende mehrere Schemata gleichzeitig ausgeführt werden können).

Beachten Sie, dass Sie PBKDF-Funktionsaufrufe verketten können, sodass Sie die ursprüngliche PBKDF-Ausgabe verwenden und diese als Eingabe für die nächste PBKDF verwenden können.In diesem Fall muss der Benutzer das Passwort nicht angeben (dieser Hinweis wurde von CodesInChaos auf eine andere Frage übernommen).

Andere Tipps

@maartebbodewes bietet eine hervorragende Antwort mit sehr weisen zusätzlichen Tipps.Hier ist ein Codeprobe mit seinen Empfehlungen.Ich würde auch vorschlagen, " Ihr Passwort ist zu verdammt kurz 'Was zeigt, wie wichtig es ist, moderne Kryptographie wie (zum Zeitpunkt des Schreibens) Brrrypts oder schritte .

generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top