Base des registre pour sauvegarder le mot de passe [Résolu]

jackalunion 129 Messages postés mercredi 8 janvier 2003Date d'inscription 14 juillet 2008 Dernière intervention - 14 juin 2008 à 01:47 - Dernière réponse : jackalunion 129 Messages postés mercredi 8 janvier 2003Date d'inscription 14 juillet 2008 Dernière intervention
- 18 juin 2008 à 13:31
 J ai utiliser la base des registre pour sauvegarder le mot de pass, et je me demander si il ya une autre solution ???

USES
Registry

Procedure TForm1.ValiderClick(sender:TObject);
 Var
      Reg:TRegInifile;
      Pass:string;
Begin
        // Pour verifier le mot de pass
    Reg:= TRegIniFile.Create;
    Reg.RootKey:=HKEY_CLASSES_ROOT;
    Pass:=reg.ReadString('Jackal','Pass4',");
    Reg.CloseKey;
   Reg.Free;

If edit1.text =pass then
        begin
               Messagedlg('Le mot de pass est valide',Mtinformation,[MBok],0) else
              Messagedlg('Mot de pass Invalide', Mtinformation, [MBok], 0);
        end;
        
Pour changer le mot de pass j'ai mis

Procedure TForm1.ChangerpassClick(Sender:TOblect);
Var
Reg:TRegIniFile;
Begin
 If Confirmpass.text = Confirmpass2.text then
 Begin
 Messagedlg('Le mot de pass est valide',MTinformation, [MBok],0);
Reg:=TReginifile.Create;
Reg:=Rootkey:=HKEY_CLASSES_ROOT;
Reg.WriteString ('Jackal','Pass',Confirmpass2.text);
Reg.Closekey;
Reg.Free;
End
Else ShowMessage('Le mot de pass Ne correspond pas a la confirmation');
end;
Afficher la suite 

3 réponses

Répondre au sujet
cs_rt15 3982 Messages postés mardi 8 mars 2005Date d'inscription 7 novembre 2014 Dernière intervention - 14 juin 2008 à 09:04
+3
Utile
Salut,

Le titre de ton topic n'est pas très explicite, attention à l'ortho/typo, et formule de politesse SVP.

Bin y a d'autres solutions, style un fichier ini, ou un fichier texte.

La première des sécu à faire, c'est de ne jamais conserver de mot de passe en clair. Il est bien souvent préferable de sauvegarder un "hash" des mots de passe.

Un hash est une série d'octets générés à partir d'une autre série d'octet (Le mot de passe dans ton cas).

On ne "peut pas" retrouver un mot de passe à partir de son hash. Donc si quelqu'un trouve le hash dans la base de registre ou dans un fichier il n'est pas plus avancé : il n'aura quand même pas le mot de passe.

Ce qu'il peut tenter par contre, c'est de choisir un mot, de le hasher avec le même algo que celui utilisé par le logciel (Mais faut le deviner !), et de mettre le hash en lieu et place du hash original. Pour contrer cela, il ne faut pas que tu hashs le mot de passe, mais le mot de passe concaténé avec quelque chose.

Dans tous les cas, pour craquer ton logiciel, rien n'empèchera de le désassembler.

Un source sur les hashs.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_rt15
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 14 juin 2008 à 09:52
+3
Utile
exemple a la noix :

uses registry, tinyhash;

procedure TForm2.FormCreate(Sender: TObject);
var Reg : TRegistry;
    Pss : TSHA1Digest;
    Pass: String;
begin
  Pass:= 'HelloWorld!';

  Pss := SHA1(Pass);

  (...)

  Reg.WriteBinaryData('PSS', Pss, SizeOf(TSHA1Digest));

  (...)

  Reg.ReadBinaryData('PSS', Pss, SizeOf(TSHA1Digest));

  (...)
  if SHA1Compare(SHA1(Pass), PSS) then
    (...)
  else
    (...)
end;








<hr size="2" width="100%" />
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de f0xi
jackalunion 129 Messages postés mercredi 8 janvier 2003Date d'inscription 14 juillet 2008 Dernière intervention - 18 juin 2008 à 13:31
+3
Utile
OK, et merci encore
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jackalunion

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.