wir sind aktuell am Testen von PrestaShop 1.7. Meine Aufgabe ist es, aus einem anderen Shop System, die bestehenden Kunden in den neuen Testshop zu importieren. Das mache im Backend mit der vorhandenen Importmöglichkeit. Dafür habe ich mir entsprechend der Syntax eine .csv Datei erstellt. Das Importieren funktioniert auch problemlos. Das einzige Problem ist das Passwort.
Die Passwörter der Kunden sind mit MD5 verschlüsselt und in der .csv Datei steht der entsprechende, verschlüsselte Wert. Wenn ich die .csv Datei importiere, wird die Verschlüsselung aber als Klartext interpretiert und ergibt das neue Passwort.
Um das Problem zu beheben habe ich mir den AdminImportController.php angesehen. Dort habe ich die Funktion gefunden.
Leider habe ich noch keine Erfahrung mit der Verschlüsslung von Passwörtern, oder hash Funktionen. Deshalb stellt sich die Frage, ob der Code angepasst werden kann, damit das importierte Passwort als MD5 Verschlüsselung erkannt wird? Und entsprechend verarbeitet wird, damit sich das ursprüngliche Passwort nicht ändert?
Question
WebBusch
Hallo zusammen,
wir sind aktuell am Testen von PrestaShop 1.7. Meine Aufgabe ist es, aus einem anderen Shop System, die bestehenden Kunden in den neuen Testshop zu importieren. Das mache im Backend mit der vorhandenen Importmöglichkeit. Dafür habe ich mir entsprechend der Syntax eine .csv Datei erstellt. Das Importieren funktioniert auch problemlos. Das einzige Problem ist das Passwort.
Die Passwörter der Kunden sind mit MD5 verschlüsselt und in der .csv Datei steht der entsprechende, verschlüsselte Wert. Wenn ich die .csv Datei importiere, wird die Verschlüsselung aber als Klartext interpretiert und ergibt das neue Passwort.
Um das Problem zu beheben habe ich mir den AdminImportController.php angesehen. Dort habe ich die Funktion gefunden.
protected function customerImportOne(…){
…
if ($customer->passwd) {
/** @var \PrestaShop\PrestaShop\Core\Crypto\Hashing $crypto */
$crypto = ServiceLocator::get('\\PrestaShop\\PrestaShop\\Core\\Crypto\\Hashing');
$customer->passwd = $crypto->hash($customer->passwd, _COOKIE_KEY_);
}
…
}
Die verwendete hash Funktion ist in der angegebenen Datei zu finden:
public function hash($plaintextPassword, $staticSalt = _COOKIE_KEY_)
{
if (!count($this->hashMethods)) {
$this->initHashMethods();
}
$closure = reset($this->hashMethods);
return $closure['hash']($plaintextPassword, $staticSalt, $closure['option']);
}
Leider habe ich noch keine Erfahrung mit der Verschlüsslung von Passwörtern, oder hash Funktionen. Deshalb stellt sich die Frage, ob der Code angepasst werden kann, damit das importierte Passwort als MD5 Verschlüsselung erkannt wird? Und entsprechend verarbeitet wird, damit sich das ursprüngliche Passwort nicht ändert?
Ich bedanke mich für jegliche Hilfe
!
Link to comment
Share on other sites
49 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now