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

Langage PHP Discussion :

[Sécurité] Fonction de cryptage rapide


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut [Sécurité] Fonction de cryptage rapide
    Bonjour à vous,

    En vue de protéger un peu plus les mots de passe des mes membres, je souhaiterez en plus de la fonction md5() les crypter par une autre fonction ( si un pirate réussi à récuperer la bdd, les dicos md5 sont assez performant pour décrypter la pluspart des pass, un second cryptage lui poserait plus de problème).

    Le second cryptage peut être réversible ou non.
    Par contre, il faudrait que sa soit le plus rapide possible ( logique ! ) et que sa ne génère pas de caractères spéciaux ( risque de problèmes avec mysql )


    Donnez moi vos idées !

  2. #2
    Membre chevronné Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Par défaut
    le mieux à faire c'esty que tu ajoutes un grain de sel dans ton cryptage md5

  3. #3
    Membre émérite
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Par défaut
    Hello,

    l'idéal est d'utiliser un "grain de sel". Ainsi l'utilisation de la fonction CRYPT() suffit. D'autre part la fonction CRYPT() est un standard sous Unix, on la retrouve dans la plupart des langages, PHP et MySQL y compris ; c'est également elle qui est utilisée pour le stockage des mots de passe système sous Linux et pour un grand nombre d'applications sous Unix en général.

    http://at2.php.net/manual/fr/function.crypt.php

  4. #4
    Invité
    Invité(e)
    Par défaut
    Je viens de penser à une chose, un double md5 sa doit être pas mal non ?

    Sinon la fonction crypt() me parait trés bien aussi !
    Moi qui était aller me faire ***** avec les fonctions mcrypt_create_iv, je vois qu'il y a plus simple !

  5. #5
    Membre émérite
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Par défaut
    Non, dans tous les cas le hash d'un même mot de passe sera toujours identique.

    Une seule solution : grain de sel.

  6. #6
    Membre éprouvé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Par défaut
    je te conseil de faire un cryptage personnel... moi c'est ce que j'ai fais et pour le moment personne n'a réussi a trouver une solution...

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Kioob
    Non, dans tous les cas le hash d'un même mot de passe sera toujours identique.

    Une seule solution : grain de sel.
    Je ne parle pas de faire un md5 deux fois sur le même mot de pass, mais de faire un double md5 :

    md5(md5($pass)); différent de md5($pass);

    Mais je viens de tester la fonction crypt sa me va trés bien !

    Le cryptage personnel j'y est pensé mais je pense que c'est moins optimisé niveau temps d'éxécution.

  8. #8
    Membre émérite
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Par défaut
    lol... parce que tu n'es jamais tombé sur un expert...

    A quoi bon ré-inventer la roue ? A moins que tu penses vraiment pouvoir faire mieux que les mathématiciens spécialisés dans le domaine, je ne vois pas l'intérêt.

  9. #9
    Membre émérite
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Par défaut
    Citation Envoyé par yotsumi
    Citation Envoyé par Kioob
    Non, dans tous les cas le hash d'un même mot de passe sera toujours identique.

    Une seule solution : grain de sel.
    Je ne parle pas de faire un md5 deux fois sur le même mot de pass, mais de faire un double md5 :

    md5(md5($pass)); différent de md5($pass);

    J'avais bien compris.... mais tu peux refaire 500 fois ton "md5(md5($pass));", tu obtiendras toujours le même résultat... et c'est ça le problème.
    Or, avec un grain de sel, tu n'as pas ce soucis.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bon au final je vais prendre sa :

    $md5crypt = crypt( md5($pass) ,$cle_DES_etendu);

    Merci à vous !

  11. #11
    Membre émérite
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Par défaut
    ce qui ne sert absolument à rien...

  12. #12
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Kioob
    ce qui ne sert absolument à rien...
    ? A propos de quoi ?

  13. #13
    Membre émérite
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Par défaut
    crypt() suffit largement... ça ne te sert à rien d'ajouter une couche de MD5()...

  14. #14
    Invité
    Invité(e)
    Par défaut
    Ouais c vrai que la $clé permet d'avoir la garanti d'une unicité ( pas de dicos possible )

  15. #15
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Citation Envoyé par Kioob
    J'avais bien compris.... mais tu peux refaire 500 fois ton "md5(md5($pass));", tu obtiendras toujours le même résultat... et c'est ça le problème.
    Or, avec un grain de sel, tu n'as pas ce soucis.
    @Kioob : J'aimerais savoir qui t'as assuré cela car :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
     
    $string = 'test';
    echo md5($string).'<br />'.md5(md5($string));
     
    ?>
    Affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    098f6bcd4621d373cade4e832627b4f6
    fb469d7ef430b0baf0cab6c436e70375
    À moins que je doive me racheter des yeux...
    Finalement, c'est un comportement un peu plus logique que ce que tu proposais (à savoir que crypter un cryptage ne change rien) puisque, du point de vue de md5(), le retour d'un autre md5() est une chaîne : pas moyen de savoir que c'est une chaîne cryptée qu'il ne doit pas crypter davantage.

  16. #16
    Membre émérite
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Par défaut
    Kirkis... relis bien avant de sortir de tels trucs...

    Je parle de ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $pass = 'toto';
    echo md5(md5($pass)), "<br />\n";
    echo md5(md5($pass)), "<br />\n";
    Tu obtiendras deux fois la même chose, ce qui n'est pas le cas en utilisant un salt.

  17. #17
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Citation Envoyé par yotsumi
    Je ne parle pas de faire un md5 deux fois sur le même mot de pass, mais de faire un double md5 :

    md5(md5($pass)); différent de md5($pass);
    Citation Envoyé par Kioob
    tu peux refaire 500 fois ton "md5(md5($pass));", tu obtiendras toujours le même résultat...
    Je pense que tu as mal saisi ce qu'il voulait dire mais ce n'est que mon avis.
    Après, je t'ai mal compris toi car je l'avais bien compris lui

  18. #18
    Membre émérite
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Par défaut
    Non j'ai parfaitement compris ce qu'il cherchait à faire, et lui ai répondu en fonction de ça : il voulait faire du double MD5 pour éviter les attaques par dictionnaire. Je lui ai donc expliqué que cela ne changeait rien, et que la méthode du grain de sel était - elle - efficace.

    C'est d'ailleurs pourquoi il a décidé d'utiliser crypt() au lieu de md5()...


    Note : s'il faut que je te ré-explique tous mes posts à chaque fois, on va pas s'en sortir hein... Prends le temps de lire stp.

  19. #19
    Membre chevronné Avatar de XtofRoland
    Profil pro
    Inscrit en
    Août 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 357
    Par défaut
    jusqu'a ce dernier message j'ai halluciné!

    Kioob contrairement a ce que tu peux croire, tu es loin d'etre clair...



    il y a un topic interessant , securité totale ;-)

  20. #20
    Membre émérite
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Par défaut
    et qu'est ce qui n'est pas clair pour toi dans une simple phrase comme celle ci ?
    tu peux refaire 500 fois ton "md5(md5($pass));", tu obtiendras toujours le même résultat

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 6
    Dernier message: 02/08/2025, 13h21
  2. fonction de cryptage
    Par didier17062006 dans le forum C++
    Réponses: 8
    Dernier message: 09/10/2006, 16h52
  3. Réponses: 1
    Dernier message: 08/02/2006, 11h18
  4. Réponses: 4
    Dernier message: 13/11/2005, 12h16
  5. Module de cryptage rapide demandant peu de ressources
    Par gracouille dans le forum Modules
    Réponses: 3
    Dernier message: 14/06/2004, 12h05

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