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

PHP & Base de données Discussion :

Cryptage des mots de passes [SQL-Server]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 119
    Points : 53
    Points
    53
    Par défaut Cryptage des mots de passes
    bonjour, j'ai un projet en PHP sql server,
    j'ai une table dans laquelle je stocke les mots de passe de chaque utilisateur.

    le souci c'est que je voudrai crypter les mots de passes dans la base de données pour que si même quelqu'un entre dans la base il ne comprendra rien.

    faut -il un algorithme pour cryptage , décryptage ou bien la base de données sql server s'occupe automatiquement du cryptage????
    si oui comment je peux le faire?? quelqu'un peut-t-il m'orienter???

    mercie t salutations

  2. #2
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Bonjour,

    il faut que tu cryptes le mot de passe de l'utilisateur dans ta base au moment de la création du compte par un algo tel que :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $mdp_clair = $_POST['mdp'];
     
    $mdp_crypt = sha1($mdp_clair);
    // ou
    $mdp_crypt = md5($mdp_clair);

    Et ensuite, quand l'utilisateur se connecte, tu compares le md5 ou le sha1 de ce qu'il a rentré avec ta valeur en base. Attention: ces algo sont sensibles à la casse donc md5('unmotdepasse') est différent de md5('unMotDePasse') donc tu peux comparer le strtolower si la casse n'a pas d'importance pour toi

  3. #3
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 119
    Points : 53
    Points
    53
    Par défaut
    merci pour la réponse, mais sha1 et md5 criptent mon mot de passe,
    mais comment le décrypter pour la vérification lors de la connexion??

  4. #4
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    tu ne le décryptes pas justement c'est là l'intérêt justement si un pirate aspire ta base

    En gros :

    I Sur ta page php insérant un nouveau compte en base :

    1) tu récupères le mot de passe en clair via un $_POST['mdp'] par exemple.
    2) tu inséres en base dans le champs mdp du user la valeur sha1($_POST['mdp']) (bien sur après voir controlé les données rentrées par l'utilisateur)

    II Lorsque l'utilisateur se connecte et rentre donc un mot de passe :

    1) tu récupères le mot de passe en clair que tu converti en sha1()
    2) tu vérifies si la valeur obtenue est celle stockée en base
    -> si oui alors connection
    -> si non alors mot de passe erroné

  5. #5
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Citation Envoyé par BYALI Voir le message
    merci pour la réponse, mais sha1 et md5 criptent mon mot de passe,
    mais comment le décrypter pour la vérification lors de la connexion??
    Bonjour,
    C'est justement tout l'intérêt du cryptage, ne pas pouvoir décrypter.

    Pour vérifier il te suffit de comparer la valeur cryptée de la saisie avec celle existante pour ton utilisateur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $given_pwd = sha1($_POST['pwd']);
    $exists = mysql_result(mysql_query('SELECT COUNT(id) AS nb FROM users WHERE pwd = "'.$given_pwd.'"'), 0, 'nb') > 0;

  6. #6
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 119
    Points : 53
    Points
    53
    Par défaut
    oui j'ai compris, mais si jamais quelqu'un a oublié son mot de passe, et moi je suis un administrateur, je ne pourrais voir le mot de passe en clair même si j'accède à la base?? en gros y a pas de fonction contraire à sha1??

  7. #7
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Citation Envoyé par BYALI Voir le message
    oui j'ai compris, mais si jamais quelqu'un a oublié son mot de passe, et moi je suis un administrateur, je ne pourrais voir le mot de passe en clair même si j'accède à la base?? en gros y a pas de fonction contraire à sha1??
    Non, tu dois lui recréer un mot de passe aléatoire et lui fournir par mail par exemple

  8. #8
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 119
    Points : 53
    Points
    53
    Par défaut
    merci à tous, vos réponses me sont de grandes lumières..

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

Discussions similaires

  1. [CakePHP] Formulaire et cryptage des mots de passe : erreur etrange
    Par RideKick dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 23/11/2009, 10h35
  2. Django et cryptage des mots de passe des utilisateurs
    Par soitdipo dans le forum Django
    Réponses: 1
    Dernier message: 24/01/2008, 17h38
  3. Cryptage des mot de passe dans Tomcat
    Par kedare dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 19/06/2006, 16h49
  4. [Sécurité] Cryptage des mots de passe
    Par franfr57 dans le forum Langage
    Réponses: 9
    Dernier message: 25/04/2006, 14h04
  5. Cryptage des mots de passe en shell
    Par melmouj dans le forum Linux
    Réponses: 7
    Dernier message: 05/04/2006, 14h27

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