Đó là hàm băm cho mật khẩu khách hàng trong DB. Vì vậy, MD5 & Sha1 không hoạt động.
UPDATE `customer_entity` SET `password` = MD5('test123') WHERE `email` = 'X@X.com';
Vậy làm thế nào để cập nhật mật khẩu bằng truy vấn cơ sở dữ liệu. Có thể là MD5(Sha1('test123'))
gì?
Làm thế nào Magento đang làm thông qua mã. đi đếnvendor\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>");
}