IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Créez, gérez et utilisez les mots de passe

Cet article a pour but de montrer les différents moyens pour gérer des informations.

Article lu   fois.

L'auteur

Site personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

I. Présentation

Un mot de passe permet de sécuriser un programme ou une partie d'un programme. Il permet de restreindre l'accès aux utilisateurs. Le ou les administrateurs ayant le mot de passe peuvent alors accéder à certaines options d'un programme ou à un programme tout entier.
Le mot de passe permet également d'identifier par le login (nom de l'utilisateur), la personne qui utilise l'application.

II. Description du programme

Lors de l'exécution d'un programme, une boite de dialogue peut vous demander un mot de passe pour accéder aux programmes.
Pour concevoir une application offrant cette option, il faut tout d'abord choisir un mot de passe.
Il y a deux types de solutions suivant l'application que l'on veut effectuer :
- la première consiste à mettre le mot de passe dans le source du programme ;
- la deuxième permet à l'administrateur de changer le mot de passe.

III. Mot de passe dans le source du programme

Ce programme est très facile à réaliser en Delphi.
Voici un aperçu du programme lors de son exécution.

Image non disponible

Nous avons besoin de deux composants TButton, un TEdit et deux TLabel.
Disposez ces composants comme ci-dessus.
Le but est de comparer ce que l'utilisateur entre dans le TEdit et de réagir lors de l'appui sur le bouton OK.

 
Sélectionnez
procedure TForm1.Button1Click(Sender: TObject);
begin
  //Bouton OK
  if Edit1.Text='delphi' then
    ShowMessage('Mot de passe correct !')
  else
    ShowMessage('Mot de passe incorrect !');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  //Bouton Annuler
  Close;
end;

Télécharger le programme [5 Ko]

Astuce : Mettez * à la place de #0 dans la propriété PassWordChar du composant TEdit. Cela permettra de cacher le mot de passe lorsque l'utilisateur tapera le mot de passe.

IV. Changer le mot de passe

Après avoir validé son mot de passe, l'administrateur pourra alors le changer. Il faut donc un moyen de sauvegarder le mot de passe, car celui-ci contrairement à l'exemple précédent pourra changer.
Voici une capture de l'application.

Image non disponible

Nous avons besoin de deux composants TButton, un TEdit et deux TLabel. Disposez ces composants comme ci-dessus.
Le but est de comparer ce que l'utilisateur entre dans le TEdit et de réagir lors de l'appui sur le bouton OK.

 
Sélectionnez
procedure TForm1.Button2Click(Sender: TObject);
begin
  //Bouton Annuler
  Close;
end;

La validation du changement de mot de passe se fait en cliquant sur le bouton OK.
On doit alors valider l'opération, si le texte (mot de passe) dans le Edit1 correspond à celui du texte du Edit2.

 
Sélectionnez
procedure TForm1.Button1Click(Sender: TObject);
begin
  //Bouton Ok
  if Edit1.Text=Edit2.Text then
  begin
    ShowMessage('Le mot de passe est valide.');
  end else
    ShowMessage('Le mot de passe ne correspond pas à la confirmation.')
end;

Ensuite, il faut sauvegarder le mot de passe.
Je vous propose trois solutions pour l'enregistrement du mot de passe en utilisant :
- un fichier ini ;
- la base de registre.

IV-A. Fichier ini

Un fichier ini est utilisé pour sauvegarder une information. Dans notre exemple ce sera le mot de passe.

 
Sélectionnez
uses IniFiles;

procedure TForm1.Button1Click(Sender: TObject);
Var FichierIni : TIniFile;
begin
  //Bouton OK
  if Edit1.Text=Edit2.Text then //Si le mot de passe est bien le même alors...
  begin
    //On affiche un message indiquant que le mot de passe est valide
    ShowMessage('Le mot de passe est valide.');
    //Ouvre le fichier ini (s’il n'existe pas, le fichier est alors créé)
    FichierIni:=TIniFile.Create('monfichier.ini');
    //Enregistre le mot de passe
    FichierIni.WriteString('Preference','Pass',Edit1.Text);
    //Détruit l'objet
    FichierIni.Free;
    Close;
  end else //Sinon...
    //On affiche un message indiquant qu'il y a une différence entre les deux edit
    ShowMessage('Le mot de passe ne correspond pas à la confirmation.');
end;

Le fichier ini sera par défaut dans le répertoire Windows.

Télécharger le programme [6 Ko]

IV-B. Base de registre

La base de registre est aussi utilisée pour l'enregistrement de données.

 
Sélectionnez
uses Registry;

procedure TForm1.Button1Click(Sender: TObject);
Var Registre : TRegistry;
begin
  //Bouton OK
  //Si le texte des deux edit est le même alors...
  if Edit1.Text=Edit2.Text then
  begin
    // Affiche un message indiquant que le mot de passe est valide
    ShowMessage('Le mot de passe est valide.');
    // Crée un objet TRegistry
    Registre:=TRegistry.Create;
    // Définit la clé principale
    Registre.RootKey:=HKEY_CLASSES_ROOT;
    // "OpenKey" ouvre une clé particulière (True signifie que
    // la clé est créée si elle n'existe pas}
    Registre.OpenKey('\MonRep',True);
    // Renvoie un string à partir du nom de la valeur
    Edit1.Text:=Registre.ReadString('Pass');
    // Ferme la clé
    Registre.CloseKey;
    // Détruit l'objet
    Registre.Free;
  end else //Sinon...
    //On affiche un message indiquant que le texte des deux edit est différent
    ShowMessage('Le mot de passe ne correspond pas à la confirmation.');
end;

Télécharger le programme [6 Ko]

V. Charger le mot de passe

Après avoir enregistré le mot de passe, il faut maintenant le charger.

Image non disponible

Nous avons besoin de deux composants TButton, un TEdit et un TLabel.
Disposez-les comme ci-dessus.

V-A. Fichier ini

 
Sélectionnez
uses IniFiles;

procedure TForm1.Button1Click(Sender: TObject);
Var FichierIni : TIniFile;
    passe:string;
begin
  //Bouton OK
  //Crée le fichier ini s'il n'existe pas
  FichierIni:=TIniFile.Create('Monfichier.ini');
  //Lit le contenu de "Pass" dans "Preference" du fichier ini
  passe:=FichierIni.ReadString('Preference','Pass',Edit1.Text);
  //Détruit l'objet
  FichierIni.Free;
  //Si le mot de passe correspond alors...
  if Edit1.Text=passe then
  begin
    //Affiche un message indiquant que le mot de passe est correct
    ShowMessage('Le mot de passe est valide.');
    //J'effectue ce que je veux...
    Close; //Quitte l'application
  end else
    //Affiche un message indiquant que le mot de passe est incorrect
    ShowMessage('Le mot de passe est incorrect.');
end;

Télécharger le programme [6 Ko]

V-B. Base de registre

 
Sélectionnez
uses Regitry;

procedure TForm1.Button1Click(Sender: TObject);
Var Registre : TRegistry;
    pass     : string;
begin
  //Bouton OK
  //Crée un objet TRegistry
  Registre:=TRegistry.Create;
  //Définit la clé principale
  Registre.RootKey:=HKEY_CLASSES_ROOT;
  //"OpenKey" ouvre une clé particulière (False signifie que la
  // clé n'est pas créée si elle n'existe pas
  Registre.OpenKey('\MonRep',False);
  //Renvoie un string à partir du nom de la valeur
  Edit1.Text:=Registre.ReadString('Pass');
  //Ferme la clé
  Registre.CloseKey;
  //Détruit l'objet
  Registre.Free;
  //Si le mot de passe correspond alors...
  if Edit1.Text=pass then
  begin
    //Affiche un message indiquant que le mot de passe est correct
    ShowMessage('Le mot de passe est valide.');
    //J'effectue ce que je veux...
    Close; //Quitte l'application
  end else //Sinon...
    //Affiche un message indiquant que le mot de passe est incorrect
    ShowMessage('Le mot est incorrect.');
end;

Télécharger le programme [6 Ko]

Astuce : pour plus de sécurité, vous pouvez crypter votre mot de passe pendant l'enregistrement puis le décrypter avant la comparaison.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Ce document est issu de https://www.developpez.com et reste la propriété exclusive de son auteur.
La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.