Es ist ein Hash für das Kundenpasswort in der DB. MD5 & Sha1 funktionieren also nicht.
UPDATE `customer_entity` SET `password` = MD5('test123') WHERE `email` = '[email protected]';
So aktualisieren Sie das Kennwort mithilfe der Datenbankabfrage. Kann sein MD5(Sha1('test123'))
?
Wie es Magento per Code geht. gehe zuvendor\magento\module-customer\Console\Command\UpgradeHashAlgorithmCommand.php
protected function execute(InputInterface $input, OutputInterface $output)
{
$this->collection = $this->customerCollectionFactory->create();
$this->collection->addAttributeToSelect('*');
$customerCollection = $this->collection->getItems();
/** @var $customer Customer */
foreach ($customerCollection as $customer) {
$customer->load($customer->getId());
if (!$this->encryptor->validateHashVersion($customer->getPasswordHash())) {
list($hash, $salt, $version) = explode(Encryptor::DELIMITER, $customer->getPasswordHash(), 3);
$version .= Encryptor::DELIMITER . Encryptor::HASH_VERSION_LATEST;
$customer->setPasswordHash($this->encryptor->getHash($hash, $salt, $version));
$customer->save();
$output->write(".");
}
}
$output->writeln(".");
$output->writeln("<info>Finished</info>");
}
Antworten:
Diese SQL funktioniert gut, um das Kundenpasswort zu aktualisieren. Getestet mit Magento 2.1.5.
Ändere einfach "DEIN PASSWORT" unten (behalte die xxx: es) und voila!
quelle
Hätte nie gedacht , von SHA - Hashing in SQL mit direkt bis ich sah , Robban ‚s Antwort . Ich möchte hinzufügen, dass Sie den Hash auch in SQL generieren können, wobei nur das Passwort übrig bleibt, das hinzugefügt werden sollte. Sie können Variablen ( set-Anweisung ) verwenden, um alle erforderlichen Werte im Voraus festzulegen:
quelle
Ich glaube nicht, dass es möglich ist, das Passwort in der DB zu setzen. Sie benötigen
SHA256
Hashing für Kundenpasswörter. So generiert Magento es:Beispiel Passwort in DB:
Dies ist das Format:
ABC
Wo
B =
$salt
= Zufällige Zeichenfolge mit 32 ZeichenA =
hash('sha256', $salt . $password);
C = Version des Hashing-Algorithmus (Standard = 1)
quelle
test
. PHP / Magento-BeispielSie können ganz einfach einen Magento 2-Stil-Passwort-Hash über PHP auf der Befehlszeile (CLI) generieren.
Verwenden Sie diesen Befehl, um einen Hash als Beispiel für ein Passwort zu generieren
test123
(ändern Sie das in Ihr eigenes Passwort):Es wird MD5 der aktuellen Epochenzeit (
time()
) als Salz verwendet, aber Sie können auch alles andere verwenden.Kopieren Sie diesen generierten Hash und fügen Sie ihn in Ihre Abfrage oder Ihr Datenbankverwaltungstool in der
password_hash
Spalte eines Kundendatensatzes ein .quelle
Probieren Sie einfach die folgende MySQL-Abfrage
Dabei ist entity_id Ihre Benutzer-ID. In unserem Fall gibt es drei Werte, die durch Zeichen voneinander getrennt sind
Sobald Sie diese Abfrage in db ausführen und sich dann mit dem angegebenen Passwort anmelden und zur Datenbanktabelle zurückkehren und das Passwort überprüfen, werden Sie feststellen, dass Magento das Passwort automatisch in das Standard-Magento2-Passwort geändert hat, dh xxxxxx: yyyyyy: 1
quelle