Это хеш для пароля клиента в БД. Так что MD5 & Sha1 не работает.
UPDATE `customer_entity` SET `password` = MD5('test123') WHERE `email` = 'X@X.com';
Итак, как обновить пароль с помощью запроса к базе данных. Может быть MD5(Sha1('test123'))
?
Как Magento делает с помощью кода. перейти кvendor\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>");
}
Ответы:
Этот SQL прекрасно работает для обновления пароля клиента. Протестировано с Magento 2.1.5.
Просто измените "YOURPASSWORD" ниже (оставьте xxx: es) и вуаля!
источник
Никогда не думал использовать алгоритм SHA хэширования в SQL непосредственно , пока я не увидел RobbaN «s ответ . Я хотел бы добавить, что вы также можете генерировать хеш в SQL, оставляя только пароль, который нужно добавить. Вы можете использовать переменные ( set-Statement ), чтобы установить все необходимые значения заранее:
источник
Я не думаю, что можно установить пароль внутри БД. Вам нужно
SHA256
хеширование для паролей клиентов. Вот как Magento генерирует это:Пример пароля в БД:
это формат:
А: В: С
где
B =
$salt
= случайная строка из 32 символовA =
hash('sha256', $salt . $password);
C = версия алгоритма хеширования (по умолчанию = 1)
источник
test
. Пример PHP / MagentoВы можете сгенерировать хеш пароля в стиле Magento 2 с помощью PHP в командной строке (CLI).
Используйте эту команду для создания хэша, например, для пароля
test123
(измените его на свой собственный пароль):Он использует MD5 текущего времени Epoch (
time()
) как соль, но вы также можете использовать что-нибудь еще.Скопируйте этот сгенерированный хеш и вставьте его в свой инструмент управления запросами или базами данных в
password_hash
столбце записи клиента .источник
Просто попробуйте следующий запрос MySQL
Где entity_id - ваш идентификатор пользователя. Есть 3 значения, разделенные знаком: sign В нашем случае
Как только вы выполните этот запрос в db, а затем войдете в систему с использованием упомянутого пароля и вернетесь к таблице базы данных и проверьте пароль, вы заметите, что magento автоматически сменил пароль на стандартный пароль magento2, то есть xxxxxx: yyyyyy: 1
источник