IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

MySQL encrypt et changement de mot de passe


Sujet :

Requêtes MySQL

  1. #1
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 237
    Points
    8 237
    Par défaut MySQL encrypt et changement de mot de passe
    bonjour,
    j'ai un serveur mail qui passe par mysql et je voudrais fournir à mes utilisateurs la possibilité de changer leur mot de passe. le serveur mail a besoin de mots de passe cryptés grâce à ENCRYPT() de mysql. le problème est que cette fonction génère des chaines différentes pour un unique mot de passe -> pas possible de comparer les mots de passe directement. la question est : comment je peux faire pour comparer le mot de passe entré par l'utilisateur pour vérifier qu'il connait son mot de passe et celui contenu dans mysql ?


  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    la fonction "encrypt" a un deuxième argument qui est en gros la clé de hashage
    (http://dev.mysql.com/doc/refman/5.0/...html#id3166393)

    si tu fais l'appel suivant : "ENRYPT('....', 'AB')" le resultat sera du genre "AB......."
    donc pour chercher l'utlisateur qui a le login 'login' et le mot de passe 'passe' il suffit de faire cette requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT *
    FROM Utilisateur
    WHERE login = 'login'
    AND ENCRYPT('passe', SUBSTRING(passeEncrypt, 1, 2)) = passeEncrypt

  3. #3
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 237
    Points
    8 237
    Par défaut
    je vais voir ça et je dis si ça va ou pas

  4. #4
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 237
    Points
    8 237
    Par défaut
    ça marche pas ou j'ai rien compris. j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //connexion au serveur sql
    $data = mysql_query("SELECT * FROM users WHERE id='".$user."' AND password=ENCRYPT('".$pass."', SUBSTRING('passeEncrypt',1,2);");
    $data ne contient rien même quand le mot de passe et user sont justes...

    une idée ?

  5. #5
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    salut, a mon avis c'est plutot ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $data = mysql_query("SELECT * FROM users WHERE id='".$user."' AND password=ENCRYPT('".$pass."', SUBSTRING(password,1,2))");
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Citation Envoyé par siddh
    salut, a mon avis c'est plutot ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $data = mysql_query("SELECT * FROM users WHERE id='".$user."' AND password=ENCRYPT('".$pass."', SUBSTRING(password,1,2))");
    oui je pense aussi

    Le_coyote utilise le code qui est dans la FAQ, comme ça la prochaine fois tu verras tout de suite le message "le champ passeEncrypt n'existe pas"
    http://php.developpez.com/faq/?page=...ysql_ressource

  7. #7
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 237
    Points
    8 237
    Par défaut
    ok ça marche

    j'avais fait n'importe quoi en fait

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 09/05/2006, 21h17
  2. changement de mot de passe->echec connexion
    Par dracula2000 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 05/04/2006, 16h41
  3. [Interbase] Changement de mot de Passe
    Par touhami dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/12/2005, 16h37
  4. Probleme avec changement du mot de passe utilisateur
    Par Davenico dans le forum Outils
    Réponses: 2
    Dernier message: 19/12/2003, 14h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo