3 Stimmen

String entschlüsseln C#

Mein Unternehmen ist dabei, eine Website nur für Mitglieder von einer dritten Partei zu übernehmen. Wir haben die Website umgeschrieben, und der letzte Schritt besteht darin, die vorhandenen Benutzer zu importieren. Wir haben die Datenbank mit den Benutzern und ihren Passwörtern. Wir haben auch den "Schlüssel" erhalten und uns wurde gesagt, dass das Passwortfeld mit AES-Verschlüsselung verschlüsselt ist.

Ich muss die Kennwörter entschlüsseln und sie dann in der neuen Datenbank mit dem Verschlüsselungsschlüssel meines Unternehmens neu verschlüsseln. Wie kann ich mit .Net die Passwörter nur mit dem Schlüssel entschlüsseln? Alle Beispiele, die ich gesehen habe, erfordern Informationen wie BlockSize, InitializationVector, KeySize usw. Ich habe diese Informationen nicht.

Gracias

1voto

Jesse Weigert Punkte 4508

Das scheint einfach falsch zu sein... Passwörter werden normalerweise nicht verschlüsselt, sondern gehasht. Wenn das der Fall ist, werden Sie nicht in der Lage sein, die ursprünglichen Passwörter wiederherzustellen.

Gibt es eine Möglichkeit, sich den Originalcode anzusehen, um zu sehen, wie die Kennwörter generiert wurden?

1voto

Daniel Earwicker Punkte 111630

Warum nicht jedem Benutzer eine E-Mail mit einem eindeutigen Link schicken, auf den er klicken kann und der ihn zu einer Seite führt, auf der er sein Passwort zurücksetzen kann?

Die Benutzer sollten ihre Passwörter ohnehin regelmäßig ändern.

0voto

leppie Punkte 111830

BlockSize und KeySize, mit denen Sie spielen können (sie sind in Vielfachen von 8 IIRC).

Bei dem Initialisierungsvektor bin ich mir nicht sicher. Es könnten alle 0 sein, aber man bräuchte mindestens 1 korrekt entschlüsseltes Passwort, um das zu überprüfen.

Viel Glück! :)

0voto

John Rasch Punkte 60054

Ohne die IV zu kennen, wird es höchstwahrscheinlich unmöglich sein, sie zu entschlüsseln, zumal es sich um Passwörter handelt, die höchstwahrscheinlich kleiner sind als die Blockgröße (der AES-Standard ist 128 Bit).

Ihre Möglichkeiten sind hier ziemlich begrenzt:

  • Fragen Sie auf der Website des Drittanbieters nach dem IV
  • Wenn Sie Zugang zu ihrem Code haben, werden Sie wahrscheinlich feststellen, dass sie dieselbe IV verwenden, um alle Passwörter innerhalb des Codes zu verschlüsseln (obwohl dies keine sehr gute Praxis ist), da es für sie keine Möglichkeit gibt, Benutzer in Zukunft zu authentifizieren, ohne entweder dasselbe wieder und wieder zu verwenden oder das für einen bestimmten Benutzer verwendete Passwort irgendwo in der Datenbank zu speichern
  • Lassen Sie die Nutzer sich auf Ihrer neuen Version der Website neu registrieren und verwenden Sie eine Form von Hashing anstelle von Verschlüsselung

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X