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
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
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.
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?
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 ;-)
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
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.
///\\3rl1n_ (O.dahan)
Formation, Développement, Audit, C#, XAML, WPF, UWP, Xamarin
Dot.Blog restez au courant...
Microsoft MVP 2009-2019
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager