Bienvenue sur le blog de l'agence Soluka !

Retrouvez des articles dédiés aux nouveautés dans le développement web, rédigés par des passionnés, ainsi que les dernières actualités de l'agence.

Recherche

Articles populaires

Jeux Phaser

15/09/14

Mot de passe admin oublié PrestaShop

par Aymeric le 15 septembre 2014
R&D
Image Mot de passe admin oublié PrestaShop

Vous avez installé le CMS PrestaShop et avez oublié par mégarde votre mot de passe pour vous connecter à l’espace d’administration de votre boutique ? Dans un premier temps, vous pouvez tenter de récupérer votre précieux sésame en utilisant la fonction « Mot de passe oublié ». Seulement, il se peut dans certains cas que vous ne receviez pas le mail contenant les informations vous permettant l’accès à votre espace d’administration. Il existe tout de même des astuces pour redéfinir un mot de passe.

Première solution

1 / Clé de salage COOKIE_KEY

Le CMS PrestaShop a une politique rigoureuse pour le stockage des mots de passe des utilisateurs. En effet, les mots de passe sont irréversibles car ils sont soumis à la fonction de hachage MD5. De plus, ils sont salés de manière statique, toujours avec la même chaîne de caractères. Chez PrestaShop, cette chaîne de caractères s’appelle la COOKIE_KEY. Vous la trouverez dans le fichier /config/settings.inc.php. Elle est longue de 56 caractères. Ci-après un exemple de COOKIE_KEY :
dG4bVMkKq2SIISABb7Fs2DIP6TuJcmkOa0mESL1tTOvUUR0urWKA4Rk0

2 / Nouveau mot de passe et concaténation

Une fois votre COOKIE_KEY récupérée, vous pouvez choisir votre nouveau de mot passe. Pour l’exemple, nous prendrons le mot de passe suivant : adminPrestaShop4102. Ensuite, concaténez votre COOKIE_KEY avec votre nouveau de mot de passe, comme ceci :
dG4bVMkKq2SIISABb7Fs2DIP6TuJcmkOa0mESL1tTOvUUR0urWKA4Rk0adminPrestaShop4102

3 / Empreinte de votre nouveau mot de passe

Vous êtes maintenant prêt à générer l’empreinte de la chaîne de caractères que vous avez créée à l’étape précédente. Pour ce faire, il faut utiliser la fonction de hachage MD5. Plusieurs applications en ligne proposent ce service, mais vous pouvez également le faire dans votre langage favori. En PHP, la fonction se nomme md5(). Si vous souhaitez utiliser un service en ligne, vous pouvez utiliser le suivant : md5 en ligne. Vous devez obtenir une chaîne de 32 caractères comme celle-ci :
fab942f98cf8de31792c97cd1da17b33

4 / Base de données PrestaShop

La dernière étape consiste à modifier le mot de passe du compte, dont vous ne vous souvenez pas, enregistré en base de données. Il suffit d’aller dans la table ps_employee et de modifier la colonne passwd pour l’enregistrement de votre choix. Remplacer l’ancienne empreinte par celle que vous venez de créer et le tour est joué. Vous pouvez accéder à l’espace d’administration avec votre nouveau de mot de passe.

Deuxième solution

1 / Nouveau compte client

La deuxième solution permet de résoudre notre problème sans passer par les étapes de hachage MD5. Il faut tout simplement commencer par créer un nouveau compte client sur le front-office de sa boutique.

2 / Base de données PrestaShop

Une fois le nouveau compte client créé, tout se passe dans la base de données de votre boutique. Il faut tout d’abord récupérer l’empreinte du mot de passe du compte client que vous venez de créer. Elle se trouve dans la colonne passwd de la table ps_customer. Il ne reste plus qu’à coller cette empreinte pour le compte de votre choix dans la colonne passwd de la table ps_employee. Vous pourrez vous connecter à l’espace d’administration avec le même mot de passe que le compte client créé précédemment.

Les tables peuvent porter un autre préfixe que ps_, à savoir celui qui a été configuré lors de la création de votre boutique. Il est d’ailleurs recommandé pour des questions de sécurité d’utiliser une chaîne de caractères aléatoire comme préfixe de table. Par exemple : pMl5_.

  • greg

    Bonjour,

    Voici une solution un peu plus simple qui permet d’arriver egalement au même résultat.

    1/ Créer simplement un nouveau compte client avec le mot de passe souhaité.
    2/ Rechercher sont compte dans la table ps_customer copier le mot de passe qui se situe dans le champ passwd.
    3/ Coller le mot de passe dans le champ passwd de la table ps_employee

    Bonne journée

    • AAymeric

      Bonjour Greg,

      Votre solution nécessite d’avoir encore un accès au back-office de sa boutique.
      Elle ne fonctionne pas en cas de perte totale des identifiants.
      Cependant, elle peut-être utile si on se souvient de son mot de passe en front-office. Je modifie l’article pour l’ajouter.

      Bon week-end.