Es hash para la contraseña del cliente en DB. Entonces MD5 & Sha1 no está funcionando.
UPDATE `customer_entity` SET `password` = MD5('test123') WHERE `email` = '[email protected]';
Entonces, ¿cómo actualizar la contraseña utilizando la consulta de la base de datos? Puede ser MD5(Sha1('test123'))
?
Cómo le está yendo a Magento a través del código. irvendor\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>");
}
Respuestas:
Este SQL funciona bien para actualizar la contraseña del cliente. Probado con Magento 2.1.5.
Simplemente cambie "SU CONTRASEÑA" a continuación (conserve las xxx: es) y listo.
fuente
Nunca pensé en usar el hashing SHA en SQL directamente hasta que vi la respuesta de Robban . Me gustaría agregar que también podría generar el hash en SQL, dejando solo la contraseña que debe agregarse. Puede usar variables ( set-instrucción ) para establecer todos los valores necesarios por adelantado:
fuente
No creo que sea posible establecer la contraseña desde el interior de la base de datos. Necesita
SHA256
hashing para las contraseñas de los clientes. Así es como Magento lo genera:ejemplo de contraseña en DB:
este es el formato:
A B C
Dónde
B =
$salt
= cadena aleatoria de 32 caracteresA =
hash('sha256', $salt . $password);
C = Versión del algoritmo de hash (predeterminado = 1)
fuente
test
. Ejemplo de PHP / MagentoPuede generar un hash de contraseña de estilo Magento 2 con bastante facilidad a través de PHP en la línea de comandos (CLI).
Use este comando para generar un hash, como ejemplo de contraseña
test123
(cámbielo a su propia contraseña):Está usando MD5 del tiempo actual de Epoch (
time()
) como una sal, pero también puede usar cualquier otra cosa.Copie este hash generado y péguelo en su consulta o herramienta de administración de base de datos en la
password_hash
columna de un registro de cliente .fuente
Simplemente intente la siguiente consulta mysql
Donde entity_id es su ID de usuario Hay 3 valores separados por: signo En nuestro caso
Una vez que ejecute esta consulta en db y luego inicie sesión con la contraseña mencionada y regrese a la tabla de la base de datos y verifique la contraseña, notará que magento ha cambiado automáticamente la contraseña a la contraseña estándar de magento2, es decir, xxxxxx: aaaaa: 1
fuente