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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

comment masquer les password ? comment saisir les touches F1, Esc ?


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 35
    Par défaut comment masquer les password ? comment saisir les touches F1, Esc ?
    Salut a tous.... Je code en VB en mode console ( c'est pour un devoir .. pas que j'aime particulièrement le mode console).... ( le site semble vouloir transferer mon message dans la section windows form ... mais ca n'a rien a voir avec windows form.... MODE CONSOLE)

    J'aimerais avant tout savoir comment "gérer" un password en VB. Je développe une application et j'aimerais y mettre une étape ou l'utilisateur aurait a entrer son mot de passe.
    Mais voila, il ne faudrait pas que ce fameux password apparaisse a l'écran pendant qu'il le tape... Ce qui serait tres partique pour les fouineurs :euh: ... Comment faire en sorte que les caractères tapés soient remplaces par des étoiles ?
    Et plus loin, comment stocker les informations sur l'utilisateur ( ID et mot de passe) de telle sorte qu'elles ne soient pas acessibles ? Je ne connais qu'une seule methode pour sauvegarder des informatiions, en les envoyant dans un fichier texte. Malheureusement, un fichier texte est facilement accessible (et le password avec).. Du coup ca ne servirait a rien d'avoir un mot de passe, puisqu'il suffirait de soulever le tapis pour avoir la cle :p ...

    D'un autre cote, j'aimerais savoir comment permettre l'utilisation des touches Esc, F1, F2 et Cie.... de même que les flèches dans un programme toujours en mode console... Les commandes console.read() et console.readline() ne tiennent pas compte de ses entrées, malheureusement puisqu'il ne s'agit pas de caractères... ce qui est navrant... Je me suis dit que peut etre que console.in.readKey() aurait pu faire l'affaire mais j'oubliais que je ne savais pas comment identifier les touches F1 ou Esc o_O ... Donc je suis pas sorti de l'auberge...

    Je compte sur vous les mecs...

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 217
    Par défaut
    Bonsoir,

    Citation Envoyé par shenzhu Voir le message
    Salut a tous.... Je code en VB en mode console [...]
    J'aimerais avant tout savoir comment "gérer" un password en VB. Je développe une application et j'aimerais y mettre une étape ou l'utilisateur aurait a entrer son mot de passe. Mais voila, il ne faudrait pas que ce fameux password apparaisse a l'écran pendant qu'il le tape[...]
    D'aucuns vous conseilleraient sans doute vivement de "quitter" le mode console... mais puisque vous insistez plusieurs fois sur ce contexte...

    Si cela peut aider, quelqu'un semble avoir du code qui répond à votre besoin :

    http://dotnet.org.za/markn/archive/2...e-utility.aspx

    Cependant, il vous faudra adapter/translater ce C# vers votre VB.NET.

    Citation Envoyé par shenzhu Voir le message
    Et plus loin, comment stocker les informations sur l'utilisateur ( ID et mot de passe) de telle sorte qu'elles ne soient pas acessibles ? Je ne connais qu'une seule methode pour sauvegarder des informatiions, en les envoyant dans un fichier texte. Malheureusement, un fichier texte est facilement accessible (et le password avec)
    Là, comme c'est toujours le cas en matière de confidentialité, la solution technique que vous allez retenir dépendra surtout du temps / de l'energie que vous pouvez y consacrer vis à vis du degré de compétence en "hacking" ou indiscrétion des utilisateurs de votre programme.

    Pour faire légèrement mieux que "l'information stockée en claire", tout en faisant relativement simple au niveau de votre code VB.NET, vous pourriez par exemple stocker le password encodé en mémoire en chaine "sûre" par l'appel à SecureString du code ci-dessus (ou, encore mieux, un hash MD5 ou SHA1 de cette chaine ; renseignez vous sur les classes de cryptographie/hash du framework) non pas dans un fichier mais quelque part dans la base de registre (sous HKEY_CURRENT_USER préférentiellement).

    Ou encore, si vous pouvez vous le permettre, envoyez ce hash sur un site web a vous (sur le web ou le reseau local), en utilisant au prealable un "seed" généré par ce site web. Le principe dans les grandes lignes :

    1) saisie du mot de passe M => vous (votre appli console) calculez le hash : H(M) où H est la fonction de hash (MD5, SHA1, etc)

    2) vous (votre appli console) contactez votre site sur lequel H(M) a été préalablement stocké => il vous renvoie un "seed" S (par ex, un simple entier aleatoire)

    3) dans l'appli console toujours : vous calculez H(H(M) + S)

    4) vous envoyez a votre site le couple < S , H(H(M) + S) >

    5) votre site récupère H(M) depuis son espace de stockage des hash de password et calcule a son tour : H(H(M) + S) ; note : il utilise le S que vous lui avez transmis en premier membre du couple en (4)

    6) enfin, votre site compare le H(H(M) + S) qu'il obtient avec le second membre du couple fourni en (4) : si c'est la meme, chose, c'est OK, sinon, il y a une "attaque" -- mauvais password ou tentative de hack

    Note : ce "seed" S généré aleatoirement par le module "distant" / hors de portée charger d'authentifier (votre site, donc), un seed différent a chaque authentification permet de parer aux attaques de type "man in the middle" où l'attaquant est capable de surveiller les echanges reseau pour intercepter les hash, H(M) ; avec l'usage d'un seed, l'attaquant ne voit passer que les H(H(M) + S) et il lui est "virtuellement impossible" de deduire H(M), puis M, a partir de la seule connaissance de H(H(M) + S) et S, à moins d'avoir une très grosse puissance de calcul, et assez de temps pour rejouer son attaque suffisamment jusqu'a "casser" votre protection... (c'est une propriété mathematique des fonctions de hash)

    Cette technique est je crois un assez bon compromis entre stocker un hash localement en base de registre (un peu plus sur que le fichier texte, mais pas très, très sûre) et une solution a base de certificats.

    Quelle que soit votre methode "d'authentification simple" retenue pour votre application console, gardez cependant a l'esprit que (a moins donc de recourir a des techniques beaucoup plus sophistiquées utilisant des certificats, au sens RSA / SSL, etc) a cause même du framework .NET et des possibilités de reflection (décompilation de vos assemblies par des outils comme Reflector ou usage de debuggers en mode géré) il est difficile de protéger votre code .NET contre des "hackers" suffisamment motivés...

    Mais bon, je suppose que si vos utilisateurs restent d'un niveau de compétence seulement "moyen" avec une probabilité assez forte, les quelques principes donnés ci-dessus devraient vous permettre d'arriver a une solution raisonnablement sure, sans y passer des jours de conception / codage, pour ce qui est de la partie gestion du mot de passe.

    Citation Envoyé par shenzhu Voir le message
    D'un autre cote, j'aimerais savoir comment permettre l'utilisation des touches Esc, F1, F2 et Cie[...]
    Il vous faudra probablement adapter de nouveau, plus avant, le code présenté par le lien que je vous ai donné ci-dessus.

    Bon courage.

    'HTH

  3. #3
    Membre averti
    Inscrit en
    Octobre 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 35
    Par défaut C'est juste pour un devoir....
    Si je travaille en mode console, c'est pas parce que j'aime, mais juste pour un devoir..... On commence l'apprentissage en mode console.. alors bien que je sache des trucs en mode windows form, je suis oblige de faire en mode console...

    Mias, je compte rehausser la qualite de mon travail.. et c'est pourquoi je pause ces questions

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lister les disques durs USB, les clés ainsi que les appareils photos
    Par infosam76 dans le forum VB 6 et antérieur
    Réponses: 17
    Dernier message: 25/02/2015, 23h26
  2. forcér les utlisateurs de saisir les champs obligatoires
    Par rafikfareh dans le forum SharePoint
    Réponses: 2
    Dernier message: 26/05/2008, 17h22
  3. Réponses: 2
    Dernier message: 21/07/2006, 10h06
  4. Réponses: 10
    Dernier message: 26/08/2005, 08h17
  5. Comment saisir les racines avec OpenOffice ?
    Par poxtra_102 dans le forum Applications et environnements graphiques
    Réponses: 5
    Dernier message: 08/10/2004, 19h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo