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

Delphi Discussion :

Créer mot de passe


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 25
    Points : 16
    Points
    16
    Par défaut Créer mot de passe
    salut tous le monde voila j'ai créer une application et je veut la protéger avec un mot de passe mais le probleme qui se pose c'est que je veut pas enregistrer le mot de passe dans une table car on ne peut intéroger cette table avec un sgbd comme paradox.alors je veut l'enregistrer dans une dll ou bien dans la basse de registre
    quelqu'un peut-il m'aider
    quel est la manip a suivre??

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    185
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 185
    Points : 192
    Points
    192
    Par défaut
    Une solution parmis tant d'autres :

    Tu crées dans le registry le mot de passe (avec la clé qui va avec).

    Quand tu démarres l'appli, tu li cette clé et compare ce qui est entré par l'utilisateur et la valeur contenue dans la clé.

    un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    var 
       monmdp : string;
       monRegistry : TRegistry.create;
    begin
    monRegistry.RootKey := HKEY_CURRENT_USER;
    if monRegistry.OpenKeyReadOnly('Software\TonAppli\')  then
       monmdp  := monRegistry.ReadString('maCleMotDePasse');
    if monmdp <> mdtentrerparutilisateur then
       application.terminate;
    end;
    Tu peux le faire, tu veux le faire tu vas le faire Bref, soyons positif

  3. #3
    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
    Fio,

    Où que tu décides de stocker ton mot de passe, prends garde à ne pas le stocker en clair
    Si les cons volaient, il ferait nuit à midi.

  4. #4
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    316
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 316
    Points : 158
    Points
    158
    Par défaut
    pq tu ne peux pas interroger ta base de données ???

  5. #5
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,
    je veut pas enregistrer le mot de passe dans une table
    Le mot de passe ne doit pas être enregistré : c'est son CRC que l'on enregistre et que l'on compare au CRC calculé à partir du mot de passe de l'utilisateur. Si l'utilisateur ne connait pas l'algo de CRC utilisé, il n'a aucun moyen de remonter au mot de passe.

    A la saisie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WriteTo_CRC_DB("user1",CRC(PassWord_Of_User)) ;
    Au Controle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UserCRC:=ReadFrom_CRC_DB("User1");
    Ok:= (UserCRC = CRC(PassWord_To_Check))
    Utiliser par exemple une fonction de CRC polynomiale de son choix (comme MD5).
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  6. #6
    Membre confirmé

    Homme Profil pro
    Chef de Projet ATIC
    Inscrit en
    Novembre 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Chef de Projet ATIC
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2005
    Messages : 274
    Points : 508
    Points
    508
    Par défaut
    Citation Envoyé par Graffito
    Si l'utilisateur ne connait pas l'algo de CRC utilisé, il n'a aucun moyen de remonter au mot de passe.
    Enfin, même en connaissance l'algo, il aura du mal à remonter jusqu'au mot de passe, à moins de disposer d'une puissance de calcul qu'aucun particulier ne dispose et de quelques années devant lui

    Voici un site proposant des composants pour calculer les CRC ainsi que pour crypter des données : http://www.cityinthesky.co.uk/cryptography.html

    Si ta base est accessible par les utilisateurs via des requêtes, en plus de mettre un mot de passe, il te faut aussi crypter tes données dans la base de données. Et s'il s'agit d'une application publique, il te faudra même utiliser un cryptage différent pour chaque utilisateur car il est facile pour un hacker de passer outre le mot de passe.

    bon courage !

  7. #7
    Membre éprouvé
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 988
    Points
    988
    Par défaut
    Une méthode efficace (je ne me rappelle plus du nom) consiste à crypter chaque mot de passe autorisé en l'utilisant lui-même comme clef.
    Imparable avec un algorithme de cryptage efficace.

  8. #8
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Je remercie tous le monde pour cette esprit d’équipe je vais essayer tous sa
    merciiiiiiiiiiiiiiiiiiiiii

  9. #9
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Solution la plus utilisee sur le web et autre :
    Stocker directement le mot de passe crypté mais en utilisant le cryptage MD5.

    C'ets un algo non reversible. Donc impossible a retrouver en clair le mot de passe.
    La comparaison se fait en cryptant le mot de passe saisi et en comparant les mots de passe crypté. 2 cryptage identique = 2 mot de passe egaux (le code md5 a te genere depuis le meme mot de passe en clair)

    A part tester TOUTES les combinaisons de mots de passe possible jusqu'a tomber sur la bonne ... un gars qui choppe le mot de passe crypte en md5 ne peut decouvrir le mot de passe en clair.

    Bon apres si on veux faire les choses bien, il faut proteger la zone memoire ou sera stocké la variable servant de test car il pourrait injecter directement en memoire le mot de passe crypté md5 qu'il vie nde lire a la place ce celui issu de la saisi comme ca le test reussi a chaques coups
    Mais bon, dans ce cas la c'est plus simple de faire sauter le test "if" en mode hexa et remplacer dans le binaire par un "if true" ....

    Note : www.Torry.net propose une unitee de cryptage md5 toute simple ... je l'ai recuperee un jour et ca marche bien
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  10. #10
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    tiens une chose aussi : Quelque soit l'algo utilisé, tu peux le lancer 2 ou 3 fois successivement sur le resultat de la fonction precedente pour brouiller les pistes. On s'attend en general a ce que le mot de passe en clair soit derriere le premier algo.

    Tu peux aussi combiner les algos pour cryper successivement le mot de passe en clair, avec 2 ou 3 algos differents
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  11. #11
    Membre confirmé

    Homme Profil pro
    Chef de Projet ATIC
    Inscrit en
    Novembre 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Chef de Projet ATIC
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2005
    Messages : 274
    Points : 508
    Points
    508
    Par défaut
    Ces méthodes ne sont valables que si on ne peut accéder à la base de données. Sinon, on aura beau crypter le mot de passe de n'importe quelle façon, il se réinitialisera en 2 secondes, sans aucun connaissance en développement ou "hackage".

  12. #12
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Citation Envoyé par Okaryn
    Ces méthodes ne sont valables que si on ne peut accéder à la base de données. Sinon, on aura beau crypter le mot de passe de n'importe quelle façon, il se réinitialisera en 2 secondes, sans aucun connaissance en développement ou "hackage".
    L'accés à la base de donnée n'est pas suffisant : il faut créer dans la base une enregistrement "user/mot_de_ passe_crypté" et fournir à l'utilisation du programme un input "user/mot_de_ passe" impossible à donner si on ne connait pas l'algoirithme.

    Toutefois, protéger l'appli sans protéger la database n'a pas beaucoup de sens.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  13. #13
    Membre confirmé

    Homme Profil pro
    Chef de Projet ATIC
    Inscrit en
    Novembre 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Chef de Projet ATIC
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2005
    Messages : 274
    Points : 508
    Points
    508
    Par défaut
    Citation Envoyé par Graffito
    L'accés à la base de donnée n'est pas suffisant : il faut créer dans la base une enregistrement "user/mot_de_ passe_crypté" et fournir à l'utilisation du programme un input "user/mot_de_ passe" impossible à donner si on ne connait pas l'algoirithme.
    Dans ce cas, il suffit de créer un utilisateur bidon avec un mot de passe bidon, de recopier ces valeurs dans la base de données et de les affecter à l'utilisateur dont on souhaite réinitialiser le mot de passe.

    Citation Envoyé par Graffito
    Toutefois, protéger l'appli sans protéger la database n'a pas beaucoup de sens.
    Tout à fait, comme montré quelques lignes au dessus.

    Le mieux étant de crypter les données avec une clef dépendante de l'utilisateur, ainsi même en réinitialisant le mot de passe, le clef de décryptage ne correspondra pas et les données resteront illisibles.

  14. #14
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Citation Envoyé par Okaryn
    Ces méthodes ne sont valables que si on ne peut accéder à la base de données. Sinon, on aura beau crypter le mot de passe de n'importe quelle façon, il se réinitialisera en 2 secondes, sans aucun connaissance en développement ou "hackage".
    Effectivement ... j'ai oublier le fait que le hackeur peut lui meme enregistrer son mot de passe crypté.

    Encore faut il qu'il connaisse l'algo pour le crypter
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  15. #15
    Membre confirmé

    Homme Profil pro
    Chef de Projet ATIC
    Inscrit en
    Novembre 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Chef de Projet ATIC
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2005
    Messages : 274
    Points : 508
    Points
    508
    Par défaut
    Citation Envoyé par Clorish
    Encore faut il qu'il connaisse l'algo pour le crypter
    Il n'a pas besoin de connaître l'algo puisque la somme de contrôle est stockée dans la base, donc une fois l'algo effectué. Il lui suffit de lire le résultat directement à l'aide d'un simple SELECT.

  16. #16
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Citation Envoyé par Okaryn
    Il n'a pas besoin de connaître l'algo puisque la somme de contrôle est stockée dans la base, donc une fois l'algo effectué. Il lui suffit de lire le résultat directement à l'aide d'un simple SELECT.
    Encore faut il qu'il sache que la valeur stockée est une somme de controle codé a l'aide d'un algo CRC32 ou MD5 ....

    ET qui te dit que cette somme n'est pas en fait la somme de controle de la version "string" de la chaine de controle du veritable mot de passe
    On peut encore aller loin

    Le tout et de ne laisser aucune piste sur l'algo et la methode utiliser pour generer la valeur stockée.
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

Discussions similaires

  1. comment créer mot de passe sur bouton ?
    Par xunil2003 dans le forum Langage
    Réponses: 1
    Dernier message: 22/08/2009, 10h22
  2. Créer un utilisateur avec le même mot de passe
    Par comment_ca dans le forum Administration
    Réponses: 4
    Dernier message: 17/04/2007, 09h44
  3. Comment créer un accès avec mot de passe sur un site?
    Par phoque.r dans le forum Langage
    Réponses: 4
    Dernier message: 13/04/2007, 13h51
  4. [TQuery] Créer une table Paradox avec mots de passe
    Par bsdocuments dans le forum Bases de données
    Réponses: 4
    Dernier message: 06/03/2007, 15h46
  5. Comment créer un mot de passe?
    Par Sabrina_of_darkness dans le forum Bases de données
    Réponses: 5
    Dernier message: 17/04/2006, 20h58

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