Ich habe meine Daten aus Parse.com exportiert, aber die Kennwörter sind mit bcrypt verschlüsselt. Ich werde die Daten in einer MySQL-Datenbank speichern und die Benutzer werden sich über eine einfache RESTful-API verbinden. Angenommen, ich erhalte den Benutzernamen und das Passwort. Wie überprüfe ich, ob dies mit dem gespeicherten Passwort übereinstimmt?Export von Passwörtern aus Parse
Antwort
Ich werde hier auf ein Bein gehen und sagen, dass es keine Möglichkeit gibt, die Passwörter zu entschlüsseln, sobald sie mit bcrypt verschlüsselt sind - dies wäre eine massive Sicherheitslücke aus einer Vielzahl von Gründen. Hier sind ein paar Links, die auf dies der Fall Hinweis:
https://www.parse.com/questions/encryption-decryption-techniques-provided-by-parse-for-passwords-or-urlsWir bcrypt intern verwenden Passwörter zu speichern. Wir stellen jedoch die verschlüsselte Version des Passworts in unserer API nicht zur Verfügung, so dass Sie es nicht in der Lage wären, es zu entschlüsseln.
https://stackoverflow.com/questions/35593429/get-parses-user-password-in-decrypted-format
Kurz gesagt, Sie gehen zu Ihren Benutzern zu kommunizieren, dass sie ihr Passwort ändern müssen werden (oder zumindest bestätigen Sie es), wenn Sie sie auf den neuen Dienst migrieren.
würde ich einen Workflow wie so vorschlagen:
Informieren Sie die Benutzer, dass ihr Passwort bestätigt werden muss/re-validiert. Bis zu Ihnen, ob Sie sie informieren, dass es wegen einer Datenmigration ist, aber ich schiene normalerweise auf der Seite der Enthüllung und der Ehrlichkeit. Sie können dies für einzelne Benutzer tun oder eine Massenkommunikation senden.
Wenn ein Benutzer sich als Nächstes an Ihrer App anmeldet, werden Sie aufgefordert, das Kennwort zu bestätigen (oder zu ändern). Verwenden Sie das Parse-SDK, um das Kennwort zu überprüfen. Wenn die Authentifizierung erfolgreich ist, verschlüsseln Sie das jetzt bekannte Kennwort mit einer Krypto-Lösung Ihrer Wahl und speichern Sie es anschließend in Ihrem neuen BaaS/dB.
Wenn der Benutzer sein Passwort nicht bestätigen kann oder sich nicht erinnert, verwenden Sie eine E-Mail- oder 2FA-Bestätigung, um das Passwort zurückzusetzen und auf die gleiche Weise zu speichern.
Es ist unmöglich, die Passwörter zu entschlüsseln.
Ich empfehle dringend, das parse.com-Datenbankmigrationstool zu verwenden, um Ihre Daten in eine externe MongoDB zu exportieren. Sie können Parse Server verwenden, um die RESTful API zu bedienen. Es kann leicht durch das Hosting Ihrer eigenen selbst gehostete Server oder eine Parse-Hosting-Lösung wie https://www.back4app.com
Alle Optionen in den unten stehenden Link erfolgen: https://github.com/ParsePlatform/parse-server#parse-server-sample-application