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

Lazarus Pascal Discussion :

Crypter mots de passe comme en PHP [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 46
    Points : 37
    Points
    37
    Par défaut Crypter mots de passe comme en PHP
    Bonjour

    J'ai développé un site web pour lequel j'aimerais pouvoir ajouter des utilisateurs depuis notre application principale développée avec Lazarus.

    Pour cela, mon seul problème est de générer un mot de passe par défaut et l'enregistrer dans la base de données sous forme hashée, de manière à ce que la fonction crypt de PHP puisse comparer ce hashage avec le mot de passe entré par l'utilisateur sur le site.

    J'ai remarqué la présence d'une unité md5 et j'ai testé le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Hash := MDPrint(MDString(Password, MD_VERSION_5));
    Ainsi la variable Hash contient une chaîne du style 49d31ab46cb71ef4bfb91f566f3da0db, ce qui ressemble au genre de choses générées par PHP...

    Pourtant ça ne correspond pas du tout.
    Premièrement en PHP si on ne fournit pas de salt il sera généré aléatoirement et le hashage sera chaque fois différent. Mais la fonction MDString en Lazarus ne demande pas de clé pour le hashage...

    Je n'y comprend plus rien.
    Si quelqu'un avait une quelconque expérience en ce domaine...
    Merci pour vos conseils

    Bonne journée à tous

  2. #2
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    les fonctions PHP sont les fonctions PHP

    et

    les fonctions en Lazarus sont les fonctions Lazarus.


    les hash sont généralement de type MD5, SHA1 ou d'autres

    comme ici avec le parametres MD_VERSION_5 (= MD5)

    il te suffit simplement d'utiliser la fonction MD5 ou SHA1 disponible sous lazarus.
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 46
    Points : 37
    Points
    37
    Par défaut
    Bonjour,
    Désolé si je me suis mal exprimé, je reformule :

    Dans mon script PHP, je demande à l'utilisateur un nom et un mot de passe.
    Ensuite je crypte le mot de passe entré en utilisant le nom comme clé de cryptage.
    Si le résultat obtenu est identique à la valeur lue dans la base de données, alors le mot de passe est correct.

    Donc en résumé je fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(crypt($mot_de_passe, $nom) == $valeur_lue_dans_DB) {
          ...
    }
    Comme on peut le remarquer, j'envoie à la fonction crypt le mot de passe à crypter ainsi que le nom comme clé de cryptage. Mais ça je l'ai déjà dit

    Maintenant, dans l'unité md5 de Lazarus, j'ai bien regardé toutes les fonctions proposées, mais je n'en ai trouvé aucune qui permette de crypter une chaîne en lui envoyant deux paramètres : la chaîne et la clé de cryptage.

    J'arrive à obtenir un hashage MD5 de ma chaîne, mais à mon avis cette unité sert juste à ça. Comme quand on télécharge une image iso d'un CD et qu'on nous fourni le hash md5 afin de vérifier l'intégrité du fichier... Ce n'est pas du tout ce que fait la fonction crypt de PHP.

    Si quelqu'un pouvait m'aiguiller vers l'algorythme utilisé par crypt je serais vraiment très content

    Merci !

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Noa,

    md5 est un algorithme de hashage, pas de cryptage, même si on s'en sert parfois dans ce but.

    Il ne sait donc pas utiliser une clé de cryptage.
    Si les cons volaient, il ferait nuit à midi.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 46
    Points : 37
    Points
    37
    Par défaut
    Mouais...
    Je sais bien mais c'est pourtant ce que fait PHP !

    Entretemps, j'ai trouvé un bout de code en C que je vais tenter de convertir en Lazarus, et si ça marche je viendrai poster le code ici.

    Bonne journée.


    EDIT: Finalement le jeu n'en vaut pas la chandelle. Je vais chercher une autre solution. Merci pour vos réponses.

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Goa,
    Citation Envoyé par marcleb1 Voir le message
    Mouais...
    Je sais bien mais c'est pourtant ce que fait PHP !
    Non !

    PHP crypte ton texte en utilisant md5 + une clé, ce qui est différent.
    Si les cons volaient, il ferait nuit à midi.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 46
    Points : 37
    Points
    37
    Par défaut
    C'est justement la question que je me pose : comment PHP associe-t-il le hashage MD5 et la clé afin de produite un hashage différent en fonction de la clé ?
    Est-ce qu'il fait une concaténation chaîne + clé et envoie le tout à la fonction MD5 ???

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

Discussions similaires

  1. [PHP 5.3] Crypter un mot de passe svn avec PHP
    Par Idleman dans le forum Langage
    Réponses: 19
    Dernier message: 24/05/2012, 16h26
  2. Désactiver Retenir Mot de passe comme accès
    Par jfdumais dans le forum Balisage (X)HTML et validation W3C
    Réponses: 15
    Dernier message: 07/08/2007, 08h52
  3. [Système] Changer un mot de passe unix via PHP
    Par gordon00 dans le forum Langage
    Réponses: 3
    Dernier message: 03/06/2007, 17h11
  4. [Sécurité] Crypter un mot de passe UNIX avec PHP
    Par dom78 dans le forum Langage
    Réponses: 3
    Dernier message: 15/05/2006, 19h28
  5. [Crypter mot de passe ?] Crypter les mdp user en base ?
    Par Casp dans le forum Général Conception Web
    Réponses: 9
    Dernier message: 28/02/2006, 10h56

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