Ich habe ein Login-Formular erstellt, in dem der Benutzer seinen Benutzernamen und sein Passwort eingibt. Wenn der Benutzername existiert, dekodiere ich das Passwort und überprüfe, ob es dasselbe ist wie das gesendete Passwort.Codeigniter kann das verschlüsselte Passwort nicht entschlüsseln
// Das ist von db
string(50) "v+bNPHNWHGQbcxrvu1vN8Ty++cMq0oEeaZesvfCfsLgNAFgZno"
// Und das ist nach dekodieren die Zeichenfolge oben
string(32) "�� U�U{q�0�4��è€UC��o�/�*�."
Aber es sollte
Für kodieren kehre ich verwenden
$this->encrypt->encode('123456');
Und das ist geheimer Schlüssel
$config['encryption_key'] = 'kRlaMneym7rF';
// bearbeiten
Das Problem war, dass Passwort-Feld 50
Sie sollten Ihre Kennwörter nicht verschlüsseln, sondern sie hashen.Wenn ein Benutzer versucht, sich anzumelden, hashen Sie den gesendeten Wert und überprüfen ihn mit dem Hash in der Datenbank. Es gibt ein bisschen mehr (Salze, etc.), aber das ist es im Grunde genommen. – jeroen
Wie entschlüsseln Sie die Daten? – Repox
$ this-> encrypt-> decode ('v + bNPHNWHGQbcxrvu1vN8Ty ++ cMq0oEeaZesvfCfsLgNAFgZno'); – Ben