Jest hash dla hasła klienta w DB. Więc MD5 i Sha1 nie działają.
UPDATE `customer_entity` SET `password` = MD5('test123') WHERE `email` = '[email protected]';
Jak zaktualizować hasło za pomocą zapytania do bazy danych. Może być MD5(Sha1('test123'))
?
Jak działa Magento za pomocą kodu. iść dovendor\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>");
}
Odpowiedzi:
Ten kod SQL działa dobrze, aby zaktualizować hasło klienta. Testowane z Magento 2.1.5.
Po prostu zmień „HASŁO” poniżej (zachowaj xxx: es) i voila!
źródło
Nigdy nie myślałem o użyciu SHA hashowania w SQL bezpośrednio dopóki nie zobaczyłem RobbaN „s odpowiedź . Chciałbym dodać, że możesz wygenerować skrót również w języku SQL, pozostawiając tylko hasło, które należy dodać. Możesz użyć zmiennych ( zestaw-instrukcji ), aby ustawić wszystkie niezbędne wartości z góry:
źródło
Nie sądzę, że można ustawić hasło z poziomu bazy danych. Potrzebujesz
SHA256
hasła do haseł klientów. Oto jak Magento to generuje:przykładowe hasło w DB:
to jest format:
ABC
Gdzie
B =
$salt
= losowy ciąg 32 znakówA =
hash('sha256', $salt . $password);
C = Wersja algorytmu mieszania (domyślnie = 1)
źródło
test
. Przykład PHP / MagentoMożesz łatwo wygenerować skrót hasłowy w stylu Magento 2 za pośrednictwem PHP w wierszu poleceń (CLI).
Użyj tego polecenia, aby wygenerować skrót, jako przykład hasła
test123
(zmień je na własne hasło):Wykorzystuje MD5 bieżącego czasu Epoki (
time()
) jako sól, ale możesz także użyć wszystkiego innego.Skopiuj wygenerowany skrót i wklej go do narzędzia do zarządzania zapytaniami lub bazą danych w
password_hash
kolumnie rekordu klienta .źródło
Wystarczy wypróbować poniższe zapytanie mysql
Gdzie ID_użytkownika jest twoim identyfikatorem użytkownika Istnieją 3 wartości oddzielone: znak W naszym przypadku
Po uruchomieniu tego zapytania w db, a następnie zaloguj się przy użyciu wspomnianego hasła i wróć do tabeli bazy danych i sprawdź hasło, zauważysz, że magento automatycznie zmieniło hasło na standardowe hasło magento2, tj. Xxxxxx: rrrrr: 1
źródło