Opencart: obtenir déchiffré le mot de passe à partir de la table client
Lorsque le client enregistrer un nouveau compte, nous devons leur envoyer un e-mail de confirmation, ce que ma question est que j'ai besoin d'envoyer à chaque client e-mail de confirmation avec joint leurs de connexion l'adresse email et le mot de passe qu'ils ont créé il y a un moment... alors, comment puis-je obtenir leur mot de passe de mon customer
table de champ password
..?? je veux juste faire écho à cette password
client e-mail de vérification de la page où je veux....
<?php echo $password; ?>
une idée.? merci...
Vous devez vous connecter pour publier un commentaire.
Réponse courte - vous ne pouvez pas. Lire sur SHA1, MD5, le sel et le hachage en général. Google est votre ami ici.
Voir La Question Relative À La
Votre seule option est de supprimer le chiffrement de tous les réunir et de les stocker en clair, ce qui n'est pas très sécurisé.
Sur une seconde pensée, si vous êtes en train de faire cette e-mail de confirmation lors de l'inscription, puis magasin de mot de passe non crypté chaîne dans une variable avant de l'envoi du formulaire, ensuite l'utiliser dans votre script d'envoi. Le mot de passe dans la base de données seront toujours chiffrés
Pour être honnête, je déteste chaque site web-je m'inscrire pour que m'envoie un email de confirmation contenant mon mot de passe!!! Et rapidement, je regrette, je n'ai même registre...
Donc, la meilleure réponse et une option pour Vous: ne pas envoyer un mot de passe à l'utilisateur - il sait ce mot de passe saisi lors de l'inscription, et même si il a perdu, il est encore en mesure de le changer pour un autre si l'utilisation de son compte de gestion ou "mot de passe Perdu" lien.
Si vous le souhaitez enregistrer une copie des mots de passe en texte clair, vous devez:
1) Créer une nouvelle table dans votre base de données (pour cet exemple, le tableau est appelé temp, contenant les champs varchar mail et pass)
2) trouver le fichier d'enregistrement: /catalog/model/account/customer.php
3) recherchez la ligne commençant par :
devrait être à propos de la ligne 14
ajouter une nouvelle ligne après comme suit:
Par défaut, Ouvrez le Panier hache le mot de passe avec SHA1 dans une direction de chiffrement. En termes simples, cela signifie que le mot de passe n'est pas destiné à être haché. Lorsque l'utilisateur se connecte, le système de hachages de l'entrée de l'utilisateur à nouveau et compare les valeurs de hachage. Ceci est connu comme un cryptage directionnelle est bien sûr.
Le seul moyen de le décrypter (disons un pirate par exemple) va être à l'aide d'une collision de la table qui stocke tous les originaux et hachés résultats. Pour rendre la vie plus difficile pour les pirates, OpenCart utilise également un Sel (qui crée de nouvelles nationalités différentes collision table pour chaque Sel clé) donc, il est très peu probable pour déchiffrer le mot de passe (bien que SHA-1 est déjà pas recommandé par de nombreux développeurs, en raison actuellement connus volunarabilities et il est probablement mieux d'utiliser SHA-256).
Cela étant dit, je recommande 2 options:
mcrypt_encrypt()/mcrypt_decrypt()
. OpenCart vous permet réellement avec elle, regardez sous System/Libaray/encryption.php. Vous aurez besoin de changer la catalog/model/account/customer.php de modèle. Vous aurez aussi besoin de changer le contrôleur afin qu'il comprend en fait $this->data['password'] = $customer_info['password']; Ce sera assurez-vous que vous pouvez accéder à $mot de passe dans le .le fichier tpl.