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

Bases de données Delphi Discussion :

Comment créer un mot de passe?


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 16
    Points : 12
    Points
    12
    Par défaut Comment créer un mot de passe?
    Comment créer un mot de passe pour proteger mon application, et ou et comment stocker cette information? dois-je utiliser une dll comme le mpr.dll de win 98? si c'est l'cas, montrez moi comment comment...


    Merci

  2. #2
    Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Mot de passe
    tien voici la source pour creer un mot de passe ==>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    unit unit1:
     
    interface
     
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;
     
    type
      TForm1 = class(TForm)
        Button1: TButton;
        Label1: TLabel;
        Edit1: TEdit;
        Button2: TButton;
        Label2: TLabel;
        procedure Button2Click(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.DFM}
     
    procedure TForm1.Button2Click(Sender: TObject);
    begin
    If tform2.ShowModal=mrnone then
    begin
    Close; //Quitte l'application
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
     
    begin
    if Edit1.Text='delphi' then //Si le texte de l'edit est "delphi" alors...
    ShowMessage('Mot de passe correct !') //On affiche un message indiquant que le mot de passe est correct
     
    else //Sinon...
    ShowMessage('Mot de passe incorrect !'); //On affiche un message indiquant que le mot de passe est incorrect
    end;
     
    end.

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Merci warez57 de répondre à mon annonce, quoique tu ne m'apprends rien de nouveau, sans vouloir t'enfoncer, mais ton code c'est pour les amateurs et les débutants, t'as pas mieux que ça?

  4. #4
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    j'ai pas osé dire ca !
    Warez, prends l'habitude de mettre ton code avec la balise 'Code', sinon c'est illisible !

    Sabrina_of_darkness
    visiblement, tu continues ton post de la fois dernière ?
    moi je continue à dire que c'est sympa de le stocker dans la base de registre.

    Ce que j'ai fais pour une application, c'est que l'appli prend un identifiant machine et génère une clef en fonction de :
    - cet identifiant machine
    - le nom du propriétaire logiciel
    -> cela donne une clef, qui est stockée dans la base de registre.

    A chaque démarrage de l'appli, une clef est générée en fonction de ces 2 paramètres et comparée à la clef dans la base de registre
    si les 2 clefs sont égales : -> OK on continue
    -> sinon pas bon (enfin moi j'ai intégré aussi la date pour générer la clef afin de laisser une période d'essai).

    L'algo que j'ai utilisé pour crypter ma clef en fonction des params est pas hyper rigoureuse, et un cracker peut tout à fait la trouver (mais c'est quand mêm pas à la portée de tout le monde de faire des trucs comme ca...).

    Mais j'ai pas eu le temps d'approfondir, et je pense que plusieurrs algo de cryptage (voir ton autre post) existe pour crypter une clef de manière plus fiable.

    A la 1ere install, il n'y a pas de clef dans la BD, il faut donc que le code soit donné par le propriétaire du logiciel, il suffit que le user donne les paramétres pour que l'admin lui renvoie le bon code.

    Mais en fait, la clef n'a meme pas besoin d'être cachée... puisque l'algo pour la générer est censé être bon, tu peux la stocker dans un simple .ini.

    Exemple: param = ( IDCPU=123456, IDUSER=987654)
    Allo user, mes param sont: cité ci-dessus
    Allo proprio, votre clef est ABCDE
    puis stockage de ABCDE quelque part

    Au prochain demarrage, génération en interne de ABCDE grace aux param, et compraison avec la clef stockée...

    bon courage !
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  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,

    Si on veut éviter un cryptage compliqué, on peut simplement faire un checksum polynomial simple sur le password et stocker le checksum au lieu de stocker le password.
    Quand on demande le mot de passe, il suffit de vérifier que le checksum du mot de passe tapé est le même que celui enregistré.

    C'est facile à cracker si on connait l'algo de CRC (ou si on déssassemble), sinon c'est pas évident.

    Un petit lien sur algo de checksum :
    http://www.developpez.net/forums/viewtopic.php?t=483137
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  6. #6
    Membre émérite
    Avatar de Merlin
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2002
    Messages
    524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mars 2002
    Messages : 524
    Points : 2 883
    Points
    2 883
    Par défaut
    Il existe des libs MD5 ou autres de hash pour Delphi, c'est le mieux.
    La règle n°1 de la sécurité étant qu'on ne stocke jamais un mot de passe. A la place on stocke son hashage par un algo connu et fiable. Quand l'utilisateur tape à nouveau son login, on refait le même hash sur ce qu'il vient de saisir et c'est cette valeur qu'on compare à celle stockée au départ. Si identique, alors c'est ok.
    Il est bien entendu que la fiabilité ne repose que sur l'algo et la longueur de la clé. On peut aussi imposer à la saisie qu'un mot de passe fasse une longueur minimale (8 car mini par ex) et qu'il comporte un mélange de numériques et d'alpha. Il est souhaitable qu'il soit sensible à la casse aussi.
    Après on applique les règles qu'on veut, tout dépend du degré de fiabilité qu'on impose au système.

Discussions similaires

  1. Réponses: 36
    Dernier message: 28/12/2015, 23h31
  2. Réponses: 1
    Dernier message: 19/09/2005, 13h56
  3. Réponses: 5
    Dernier message: 17/12/2004, 09h25
  4. Comment cacher un mot de passe ?
    Par benxitd dans le forum Windows
    Réponses: 2
    Dernier message: 02/12/2004, 10h59
  5. Comment changer le mot de passe sous Interbase
    Par ETOKA dans le forum InterBase
    Réponses: 3
    Dernier message: 05/08/2004, 11h25

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