Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1184 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [Delphi] Stockage d'un mot de passe. [Résolu]

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Delphi] Stockage d'un mot de passe. [Résolu]

n°519944
Grouzou
Recycling ...for everybody ...
Posté le 21-09-2003 à 19:37:52  profilanswer
 

Bonjour à tous,
 
Je viens de me mettre au Delphi, et pour les besoins de mon application j'aurais besoin de conserver le mot de passe utilisateur afin que celui ci n'est pas à le mettre à chaque fois.
 
Quel est le meilleur moyen donc pour conserver ce mot de passe dans les meilleures conditions ( j'etends par la impossibilité de le retrouver en éditant un fichier ou je ne sais quoi..)
 
Merci de votre aide!!
 
Grouzou


Message édité par Grouzou le 21-09-2003 à 19:49:58
mood
Publicité
Posté le 21-09-2003 à 19:37:52  profilanswer
 

n°519945
Taz
bisounours-codeur
Posté le 21-09-2003 à 19:39:29  profilanswer
 

ben comme la méthode classique
 
tu mémorises les mot de passe passé à la moulinnette par une fonction de hachage, c'est à dire pas réversible
 
saisis de l'utilisateur, moulinette, comparaison avec le fichier

n°519946
Grouzou
Recycling ...for everybody ...
Posté le 21-09-2003 à 19:41:44  profilanswer
 

Hmm c'est vrai que c'est tout bête en fait... mais je ne sais pas pourquoi dans mon cas pensais que ce n'était pas faisable ( un client et serveur...) mais en fait c'est faisable sans aucun probleme.... :)
 
Hmm en Delphi c'est quoi le nom de la fonction qui permet ce hachage??? .......... Bon ok je vais voir dans l'aide ;)
 
Merci pour ta réponse

n°519947
Taz
bisounours-codeur
Posté le 21-09-2003 à 19:42:55  profilanswer
 

aucune idée, j'ai fait un semestre de pascal y a longtemps  :)
 
sous GNU/linux, ça passe par crypt et du MD5


Message édité par Taz le 21-09-2003 à 19:43:20
n°519948
Grouzou
Recycling ...for everybody ...
Posté le 21-09-2003 à 19:44:32  profilanswer
 

Moi le seul pascal que j'ai fait c'était en seconde durant mes TP de physique... Sonde "Orhpy" ou un truc du style.... et je sais pas pourquoi on a pas vu la fonction de cryptage ;-)
 
Merci tout de meme pour ton aide :)

n°519953
taureau
Posté le 21-09-2003 à 19:55:47  profilanswer
 

ici http://www.fichtner.net/delphi/md5.delphi.phtml tu trouveras une unité pour utiliser l'algo md5

n°519966
Grouzou
Recycling ...for everybody ...
Posté le 21-09-2003 à 20:05:29  profilanswer
 

Merci bicoup :)

n°519988
antp
Super Administrateur
Champion des excuses bidons
Posté le 21-09-2003 à 20:53:48  profilanswer
 

moi j'utilise ça :
 

Code :
  1. function Encrypt(Value: string): string;
  2. var
  3. i: Integer;
  4. b: byte;
  5. begin
  6.   result := '';
  7.   for i:=1 to Length(Value) do
  8.     Value[i] := Char(Byte(Value[i]) xor i);
  9.   for i:=1 to Length(Value) do
  10.   begin
  11.     b := byte(Value[i]) AND $0F;
  12.     b := ord('A')+b;
  13.     result := result+char(b);
  14.     b := (byte(Value[i]) AND $F0) shr 4;
  15.     b := ord('a')+b;
  16.     result := result+char(b);
  17.   end;
  18. end;
  19. function Decrypt(Value: string): string;
  20. var
  21. i,j: Integer;
  22. b,c: byte;
  23. begin
  24.   result := '';
  25.   i := 1;
  26.   j := 1;
  27.   while i<Length(Value) do
  28.   begin
  29.     b := byte(Value[i])-ord('A');
  30.     c := (byte(Value[i+1])-ord('a')) shl 4;
  31.     b := b+c;
  32.     Value[j] := char(b);
  33.     inc(i,2);
  34.     inc(j,1);
  35.   end;
  36.   SetLength(Value,Length(Value) div 2);
  37.   for i:=1 to Length(Value) do
  38.     result := result+Char(Byte(Value[i]) xor i);
  39. end;


 
je sais pas ce que ça vaut, c'est pas moi qui l'avait fait :D
 
Taz >> je vois pas trop où tu veux en venir, avec un système non réversible comment tu fais puisqu'il demandait "conserver le mot de passe utilisateur afin que celui ci n'est pas à le mettre à chaque fois."... le md5 ça va pas fort pour ça, non ?


Message édité par antp le 24-09-2003 à 17:16:05

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°519992
Taz
bisounours-codeur
Posté le 21-09-2003 à 20:56:15  profilanswer
 

ben c'est très très mauvais !

n°519994
antp
Super Administrateur
Champion des excuses bidons
Posté le 21-09-2003 à 20:56:28  profilanswer
 

Taz a écrit :

ben c'est très très mauvais !


 
 :heink:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
mood
Publicité
Posté le 21-09-2003 à 20:56:28  profilanswer
 

n°519995
Taz
bisounours-codeur
Posté le 21-09-2003 à 20:57:22  profilanswer
 

ben c'est cassable très facilement, ce n'est absolument pas sur. aucun système digne de ce nom ne procède comme ça

n°519999
forummp3
@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@
Posté le 21-09-2003 à 21:07:05  profilanswer
 

Taz a écrit :

ben c'est cassable très facilement, ce n'est absolument pas sur. aucun système digne de ce nom ne procède comme ça

de toute facon,il est toujours possible de cracker le logiciel, un logiciel sécurisé a 100 % n'existe pas [:spamafote]


---------------
lecteur mp3 yvele's smilies jeux de fille
n°520001
*syl*
--&gt; []
Posté le 21-09-2003 à 21:07:49  profilanswer
 

Taz a écrit :

ben c'est cassable très facilement, ce n'est absolument pas sur. aucun système digne de ce nom ne procède comme ça

J'me disais la même chose qu'antp :

Citation :

Taz >> je vois pas trop où tu veux en venir, avec un système non réversible comment tu fais puisqu'il demandait "conserver le mot de passe utilisateur afin que celui ci n'est pas à le mettre à chaque fois."... le md5 ça va pas fort pour ça, non ?

:heink:

n°520003
antp
Super Administrateur
Champion des excuses bidons
Posté le 21-09-2003 à 21:11:15  profilanswer
 

Taz a écrit :

ben c'est cassable très facilement, ce n'est absolument pas sur. aucun système digne de ce nom ne procède comme ça


 
bah dis comment ils font alors les softs qui retiennent les mots de passe :D je me doute qu'il doit y avoir des trucs plus sûrs, mais bon faut voir aussi le degré de sûreté nécessaire...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°520010
Taz
bisounours-codeur
Posté le 21-09-2003 à 21:17:25  profilanswer
 

antp a écrit :


 
bah dis comment ils font alors les softs qui retiennent les mots de passe :D je me doute qu'il doit y avoir des trucs plus sûrs, mais bon faut voir aussi le degré de sûreté nécessaire...

ben ces trucs facilement cassables

n°520247
Grouzou
Recycling ...for everybody ...
Posté le 22-09-2003 à 10:41:49  profilanswer
 

antp a écrit :

moi j'utilise ça :
 

Code :
  1. function Encrypt(Value: string): string;
  2. var
  3. i: Integer;
  4. b: byte;
  5. begin
  6.   result := '';
  7.   for i:=1 to Length(Value) do
  8.     Value[i] := Char(Byte(Value[i]) xor i);
  9.   for i:=1 to Length(Value) do
  10.   begin
  11.     b := byte(Value[i]) AND $0F;
  12.     b := ord('A')+b;
  13.     result := result+char(b);
  14.     b := (byte(Value[i]) AND $F0) shr 4;
  15.     b := ord('a')+b;
  16.     result := result+char(b);
  17.   end;
  18. end;
  19. function Decrypt(Value: string): string;
  20. var
  21. i,j: Integer;
  22. b,c: byte;
  23. begin
  24.   result := '';
  25.   i := 1;
  26.   j := 1;
  27.   while i<Length(Value) do
  28.   begin
  29.     b := byte(Value[i])-ord('A');
  30.     c := (byte(Value[i+1])-ord('a')) shl 4;
  31.     b := b+c;
  32.     Value[j] := char(b);
  33.     inc(i,2);
  34.     inc(j,1);
  35.   end;
  36.   SetLength(Value,Length(Value) div 2);
  37.   for i:=1 to Length(Value) do
  38.     result := result+Char(Byte(Value[i]) xor i);
  39. end;


 
je sais pas ce que ça vaut, c'est pas moi qui l'avait fait :D
 
Taz >> je vois pas trop où tu veux en venir, avec un système non réversible comment tu fais puisqu'il demandait "conserver le mot de passe utilisateur afin que celui ci n'est pas à le mettre à chaque fois."... le md5 ça va pas fort pour ça, non ?


 
Antp / Taz >> Me corriger si j'ai mal compris, mais le truc est de conserver la chaine crypté en md5 sur le client, de lui envoyer ca et de comparer avec le md5 du server, si ca match c'est gagné, sinon erreur?
 
Du moins moi je le vois comme ca :)
 
Antp >> Tes fonctions de cryptage elles suivent un algo particulier exsistant ou c'est une création?


Message édité par Grouzou le 24-09-2003 à 17:16:19
n°520302
antp
Super Administrateur
Champion des excuses bidons
Posté le 22-09-2003 à 12:03:20  profilanswer
 

Grouzou a écrit :


Antp / Taz >> Me corriger si j'ai mal compris, mais le truc est de conserver la chaine crypté en md5 sur le client, de lui envoyer ca et de comparer avec le md5 du server, si ca match c'est gagné, sinon erreur?


 
Oui si c'est ton programme qui fait la comparaison et qui dit si l'utilisateur a accès. Si ton programme envoie juste un mot de passe au serveur, là le md5 ne te servira à rien.
 

Grouzou a écrit :


Antp >> Tes fonctions de cryptage elles suivent un algo particulier exsistant ou c'est une création?


 
je pense que ce n'est pas basé sur un truc existant, mais comme je l'ai dit ce n'est pas moi qui ai écrit ces fonctions ;)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°520412
qi130
Posté le 22-09-2003 à 15:02:04  profilanswer
 

Grouzou a écrit :

Bonjour à tous,
 
Je viens de me mettre au Delphi, et pour les besoins de mon application j'aurais besoin de conserver le mot de passe utilisateur afin que celui ci n'est pas à le mettre à chaque fois.
 
 


 
Humm revenons à nos moutons.....
 
Déjà, quel est l'intérêt de conserver un MdP crypté qq part si l'utilisateur n'a pas à le ressaisir ?
 
Par quel miracle le soft va reconnaître l'utilisateur ?

n°520421
Grouzou
Recycling ...for everybody ...
Posté le 22-09-2003 à 15:12:30  profilanswer
 

Je donne l'option à l'utilisateur de concerver le mot de passe, ensuite à lui de voir qui va utiliser l'appli...
 
Mais bon comme c'est un petit soft rien que pour moi et quelques amis ca n'a pas grande importance. ( un soft de communication style irc ou msn car on en a marre d'utiliser les mails internes :) (et on a pas acces à internet )
 
Je  fais juste cela pour m'initier à Delphi, ensuite si je concois des softs de plus grande importance je mettrai une part plus importante à la sécurité

n°520423
Taz
bisounours-codeur
Posté le 22-09-2003 à 15:13:03  profilanswer
 

QI130 a écrit :


 
Humm revenons à nos moutons.....
 
Déjà, quel est l'intérêt de conserver un MdP crypté qq part si l'utilisateur n'a pas à le ressaisir ?
 
Par quel miracle le soft va reconnaître l'utilisateur ?

ben que le mdp crypté qu'il a dans son cookie, bern quand il s'identifie avec le serveur, tout ne passe pas en clair.
 
je crois que c'est pas compliqué à comprendre

n°520472
Grouzou
Recycling ...for everybody ...
Posté le 22-09-2003 à 16:14:44  profilanswer
 

Sinon, j'ai une autre question....  
 
Je ne me l'était pas posé mais je crois que je vais avoir un problème...
 
Comment fait on pour faire accepter à un server plusiseurs connection client sur le même port?? (gestion multithread?)
 
(j'utilise les composants livrés avec Delphi 6)

n°520480
antp
Super Administrateur
Champion des excuses bidons
Posté le 22-09-2003 à 16:27:35  profilanswer
 

bah il l'accepte sans problème, non ? enfin faut voir comment tu le gères :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°520486
Grouzou
Recycling ...for everybody ...
Posté le 22-09-2003 à 16:33:58  profilanswer
 

Ben en fait j'ai déjà du mal à me connecter avec un seul client  :D  
 
Mais comme j'anticipe sur mon dev je me demandais comment je pouvais savoir de quel client venait le message... :(

n°520490
antp
Super Administrateur
Champion des excuses bidons
Posté le 22-09-2003 à 16:36:24  profilanswer
 

Il te passe le socket en paramètre (un TCustomWinSocket)
Suffit de savoir quel client est sur quel socket (à la connexion le serveur le reçoit aussi en paramètre, et il ne change pas tout au long de la connexion)


Message édité par antp le 22-09-2003 à 16:37:03

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°520492
Grouzou
Recycling ...for everybody ...
Posté le 22-09-2003 à 16:39:23  profilanswer
 

Excellent!!
 
Merci pour cette réponse précise :)

n°520494
Grouzou
Recycling ...for everybody ...
Posté le 22-09-2003 à 16:41:45  profilanswer
 

Sinon question purement pratique lié à l'éditeur de Delphi 6.
 
Quand je veux créer une nouvelle procédure je dois mettre manuellement et aux bons endroits la définition de la dite procédure.
 
Il y aurait pas un onglet style "New procedure" ?
 
(bon je sais ca fait beaucoup de question...mais hmm j'ai certainement acquis de mauvais reflexes au boulot avec l'éditeur que l'on a "AppBuilder de PROGRESS" ( et oui je suis sur que ca dit rien à personne ca ;) )

n°520500
antp
Super Administrateur
Champion des excuses bidons
Posté le 22-09-2003 à 16:52:09  profilanswer
 

Tu mets ta déclaration dans partie interface, dans la définition de la classe (en private ou public) puis tu fais Ctrl+Shift+C et ça l'ajoutera en bas, dans la partie implementation.
Mais ça ne marche pas avec les procédures simples (qui ne sont pas des méthodes d'une classe donc), ni si tu as la version Perso/Standard de Delphi il me semble.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°520507
cpdump
Posté le 22-09-2003 à 17:08:16  profilanswer
 

antp a écrit :

moi j'utilise ça :
 

Code :
  1. function Encrypt(Value: string): string;
  2. begin
  3. end;
  4. function Decrypt(Value: string): string;
  5. begin
  6. end;


 
je sais pas ce que ça vaut, c'est pas moi qui l'avait fait :D
 


En fait, ç'est un peu limité comme chiffrement  :D .
 
Grouzou, ça depend surtout si le mot de passe doit être stocké seulement pendant l'execution de l'appli (cas 1) ou après la sortie de l'appli (cas 2).
 
Dans le cas 1, il suffit de fabriquer une clé : tu prends un nombre aléatoire (ou par ex. GetTickCount) que tu hash avec du md5 : cela va donner une suite de caractère qui sera la clé pour chiffrer et déchiffre le mot de passe (à conserver donc pendant le déroulement de l'appli)
Après tu chiffre le mot de passe avec cette clé avec un algo de chiffrement quelconque (IDEA par ex cf. lien plus bas), tu as ton mot de passe chiffré, tu peux le déchiffrer en utilisant l'algo inverse. Mais tu n'as peut être pas besoin d'un truc aussi sécurisé  :D  
 
Par contre si tu veux le chiffer sur le client et le déchiffrer sur le serveur ou vice versa. il faut procéder autrement.
 
Le cas 2 est plus compliqué, demande d'authentifier l'utilisateur, mais c'est pas ce dont tu as besoin d'après ce que j'ai compris.
 
Regarde le package suivant http://www.cityinthesky.co.uk/cryptography.html il comprends toutes les fonctions de hashage (MD5,...) et les algo de chiffrement symétriques (chiffrement et déchiffrement avec la même clé, par ex. IDEA), dont tu as besoin ainsi que des exemples.


Message édité par cpdump le 24-09-2003 à 17:16:32
n°520519
antp
Super Administrateur
Champion des excuses bidons
Posté le 22-09-2003 à 17:32:30  profilanswer
 

cpdump a écrit :


En fait, ç'est un peu limité comme chiffrement  :D .
 


 
bah oui mais bon dans mon cas c'est pour un truc local qui est généralement déjà sauvé dans la config Windows (mot de passe du proxy).


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°522349
cpdump
Posté le 24-09-2003 à 16:43:21  profilanswer
 

En fait, ll faut évaluer le préjudice potientiel et mettre les moyens en conséquence. Si le préjudice est faible, il n'y a pas besoin de sortir l'artillerie lourde :D  
 
Son avantage qui est aussi sa principale faiblesse c'est que c'est un algorithme sans clé, c'est pratique pour transérer un mot de passe entre client et serveur, mais c'est toujours le même texte chiffré qui passe et il suffit de connaitre l'algo pour trouver le mot de passe.
 
De toute façons la sécurité d'un systeme correspond à la  
sécurité de son maillon le plus faible.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [Delphi] Stockage d'un mot de passe. [Résolu]

 

Sujets relatifs
[resolu] Synchroniser un texte descriptif et des images en floatune requete sur les resultats d'une autre requete ??? [résolu]
[resolu] [html] IE fait un passage à la ligne apres un <form>l'équivalent d'un type record en vb [résolu]
[résolu] Problème de reconnaissance des nouveaux messages ...Modifier une vidéo en temps réel [ Résolu .. en partie]
Question sur gestion clavier avec TP [résolu][OpenGL] arrive po a coller une texture sur une subWindow :'( [resolu]
graph + fichier [résolu]outtextxy [résolu]
Plus de sujets relatifs à : [Delphi] Stockage d'un mot de passe. [Résolu]


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR