Un mot de
passe permet de sécuriser un programme ou une partie d'un programme.
Il permet de restraindre l'accès aux utilisateurs. Le ou les
administrateur(s) ayant le mot de passe peut alors accèder
à certaines options du 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.
Ce tutorial
a pour but de vous montrer comment gérer un mot de passe mais
également de vous montrer les méthodes (base de registres
et fichier ini) pour enregistrer des données.
Lors de l'éxecution d'un programme, une boite de dialogue peut
vous demander un mot de passe pour accèder aux porgrammes.
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.
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 éxecution.

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.
procedure
TForm1.Button2Click(Sender: TObject);
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; |
|
|
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.
|
Mot de passe dans le source
du programme |
[ 08-10-2001 ] |
Permet
de sécuriser l'accès à un programme.
Télécharger : [5
Ko] [
mpass1.zip]
Auteur : Yoann
Site internet : http://delphipage.free.fr/
|
|
Après avoir valider 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.
Nous avons besoin de deux composants TButton, deux TEdit, deux TLabel.
Disposez ces composants comme ci dessus.
Le bouton Annuler permet de quitter l'application.
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.
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
Fichier ini
Un fichier ini est utilisé pour sauvegarder
une information. Dans notre exemple se sera le mot de passe.
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
ShowMessage('Le mot de passe est valide.'); //On
affiche un message indiquant que le mot de passe est valide
FichierIni:=TIniFile.Create('monfichier.ini'); //Ouvre
le fichier ini (si il n'existe pas, le fichier est alors
créé)
FichierIni.WriteString('Preference','Pass',Edit1.Text);
//Enregistre le mot de passe
FichierIni.Free; //Détruit
l'objet
Close;
end
else //Sinon...
ShowMessage('Le mot de passe ne correspond pas à
la confirmation.'); //On affiche un
message indiquant qu'il y a une différence entre
les deux edit
end; |
|
Le fichier ini sera par défaut
dans le reperetoire Windows.
Enregistrer un mot de passe
avec un fichier ini |
[ 08-10-2001 ] |
Permet
l'enregistrement d'un mot de passe en utilisant le fichier
ini.
Télécharger : [5
Ko] [
enrpass1.zip]
Auteur : Yoann
Site internet : http://delphipage.free.fr/
|
|
Base de registre
La base de registre est aussi utiliser
pour l'enregistrement de données.
uses
Registry;
procedure TForm1.Button1Click(Sender:
TObject);
Var Registre : TRegistry;
begin
//Bouton OK
if Edit1.Text=Edit2.Text then
//Si le texte des deux edit est le
même alors...
begin
ShowMessage('Le mot de passe est valide.');
//Affiche un message indiquant que le mot de passe est valide
Registre:=TRegistry.Create; //Crée
un objet TRegistry
Registre.RootKey:=HKEY_CLASSES_ROOT; //Définit
la clé principale
Registre.OpenKey('\MonRep',True); {"OpenKey" ouvre
une clé particulière (True signifie que la
clé est crée si elle n'existe pas}
Edit1.Text:=Registre.ReadString('Pass'); //Renvoie
un string à partir du nom de la valeur
Registre.CloseKey; //Ferme la clé
Registre.Free; //Détruit l'objet
end
else //Sinon...
ShowMessage('Le mot de passe ne correspond pas à
la confirmation.'); //On affiche un
message indiqant que le texte des deux edit est différent
end; |
|
La classe TRegIniFile est un dérivé de
la classe TRegistry. Elle apporte les méthodes pour manipuler la
base de registre comme un fichier ini.
Enregistrer un
mot de passe avec la base de registre |
[ 08-10-2001 ] |
Permet
l'enregistrement d'un mot de passe en utilisant la base de
registre.
Télécharger : [6
Ko] [
enrpass2.zip]
Auteur : Yoann
Site internet : http://delphipage.free.fr/
|
|
Après avoir enregistrer le mot de passe,
il faut maintenant le charger.

Nous avons besoin de deux composants TButton, un TEdit et un TLabel.
Disposez les comme ci dessus.
Fichier ini
uses
IniFiles;
procedure TForm1.Button1Click(Sender:
TObject);
Var FichierIni : TIniFile;
passe:string;
begin
//Bouton OK
FichierIni:=TIniFile.Create('Monfichier.ini'); //Crée
le fichier ini si il n'existe pas
passe:=FichierIni.ReadString('Preference','Pass',Edit1.Text);
//Lit le contenu de "Pass"
dans "Preference" du fichier ini
FichierIni.Free; //Détruit
l'objet
if Edit1.Text=passe then
//Si le mot de passe correspond alors...
begin
ShowMessage('Le mot de passe est valide.'); //Affiche
un message indiquant que le mot de passe est correct
//J'effectue ce que je veux
Close; //Quitte l'application
end
else
ShowMessage('Le mot de passe est incorrect.'); //Affiche
un message indiquant que le mot de passe est incorrect
end; |
|
Charger un mot
de passe avec un fichier ini |
[ 08-10-2001 ] |
Permet
le chargement d'un mot de passe en utilisant le fichier ini.
Télécharger : [5
Ko] [
chpass1.zip]
Auteur : Yoann
Site internet : http://delphipage.free.fr/
|
|
Base de registre
uses
Regitry;
procedure TForm1.Button1Click(Sender:
TObject);
Var Registre : TRegistry;
pass:string;
begin
//Bouton OK
Registre:=TRegistry.Create; //Crée
un objet TRegistry
Registre.RootKey:=HKEY_CLASSES_ROOT; //Définit
la clé principale
Registre.OpenKey('\MonRep',False);
{"OpenKey" ouvre une clé
particulière (False signifie que la clé n'est
pas crée si elle n'existe pas}
Edit1.Text:=Registre.ReadString('Pass'); //Renvoie
un string à partir du nom de la valeur
Registre.CloseKey; //Ferme la clé
Registre.Free; //Détruit l'objet
if Edit1.Text=pass then
//Si le mot de passe correspond alors...
begin
ShowMessage('Le mot de passe est valide.'); //Affiche
un message indiquant que le mot de passe est correct
//J'effectue ce que je veux
Close; //Quitte l'application
end
else //Sinon...
ShowMessage('Le mot est incorrect.'); //Affiche
un message indiquant que le mot de passe est incorrect
end; |
|
Mot de
passe avec la base de registre |
[ 08-10-2001 ] |
Permet
le chargement d'un mot de passe en utilisant la base de registre.
Télécharger : [6
Ko] [
chpass2.zip]
Auteur : Yoann
Site internet : http://delphipage.free.fr/
|
|
|
Pour plus de sécuriter,
vous pouvez crypter votre mot de passe pendant l'enregistrement
puis le décrypter avant la comparaison (ou crypter le mot
de passe qui vient d' être rentrer par l'utilisateur et
le comparer). |