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

C# Discussion :

aide pour une fonction [Débutant]


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 189
    Points : 68
    Points
    68
    Par défaut aide pour une fonction
    Bonjour ,

    J'étais entre un de faire une petite fonction pour m'entrainer mais j'ai un probléme que j'arrive pas à résoudre alors que sa me parait bon , enfaite la fonction permet de verifier si un mot de passe est assez sécurisé ou non comme quand on créer un email mais là je bloque .

    Pour la vérification des caractéres spéciaux et accent , si je combine les deux dans mon "if" sa ne marche pas comme dans le code ci-dessous alors que si je mets séparemment aucun probléme celà fonctionne si quelqu'un peut me dire pourquoi car là je vois vraiment pas du tout puisque celà revient de mettre && au lieu de faire séparemment si les conditions sont respectés.

    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
              static void SecuriteMDP(string motDePasse)
            {
                //const 
                const string carSpeciaux = "&#+-/*@$£=";
                const string carAvecAccent = "áäàâčçďéěëèêíïîĺľňóôöŕšťúůüùûýřžÁÄÀČÇĎÉĚËÈÊÍÏÎĹĽŇÓÔŒÖŔŠŤÚŮÜÙÛÝŘŽ";
                //var locale
                int i;
                int posAccent;
                int posSpeciaux;
     
                for(i=0;i<motDePasse.Length;i++)
                {
                    posAccent = carAvecAccent.IndexOf(motDePasse[i]);
                    posSpeciaux = carSpeciaux.IndexOf(motDePasse[i]);
     
                    if(motDePasse.Length >8 && posAccent!=-1 && posSpeciaux != -1)
                    {
                        Console.WriteLine("Mot de passe correct !");
                    }
                }
     
            }
    Ce qui est surtout bizarre c'est que si je mets || y m'affiche deux le mots de passe correct ce qui est logique donc c'est qui trouve bien la position mon caractére spécial et donc de mon accent également donc là je coince vraiment ^^

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 189
    Points : 68
    Points
    68
    Par défaut
    Je crois avoir trouvé mon erreur , sa serait pas parce que quand posAccent par exemple est différent de -1 posSpeciaux doit etre egalement etre différent -1 en meme temps ?

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 189
    Points : 68
    Points
    68
    Par défaut
    c'est bon j'ai ma réponse aprés vérification

  4. #4
    Membre actif
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Septembre 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 176
    Points : 297
    Points
    297
    Par défaut
    Bonjour,

    Je te répond même si tu as mis le sujet en résolu, car selon moi, ton algo n'est pas ce qu'il y a de mieux.
    Etant donné que tu es dans une boucle, la vérification va se faire à chaque fois, ce qui n'est pas forcément une bonne idée.
    Je passe sur le fait que le caractère testé devait être spécial et avec un accent puisque tu t'en es rendu compte.

    Le plus simple en conservant ton code tel quel, serait de forcer la sortie de ta boucle après ton Console.WriteLine avec un break; (regarde dans l'aide si tu ne connais pas)
    Pour aller plus loin, je comprend que le fait que ton mot de passe n'ai pas 8 caractères est éliminatoire, donc avant de partir dans une boucle où tu va tester cette condition à chaque fois, commence par là, si le mot de passe n'a pas 8 caractères => pas besoin de faire la boucle. Et si il a plus de 8 caractères, dans ce cas tu fait ta boucle avec le test sur les accents et caractères spéciaux.

    Je me répète un peu, ce n'est pas que ton raisonnement est faux, juste que ce n'est pas ce qu'il y de mieux.
    On pourrait bien sur aller beaucoup plus loin dans un algo de ce type, mais ce n'est pas mon propos.

    Bonne continuation.

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

Discussions similaires

  1. Aide pour une fonction
    Par vincent62149 dans le forum Excel
    Réponses: 1
    Dernier message: 06/07/2007, 17h38
  2. [FPDF] Besoin d'aide pour une fonction publipostage..;
    Par dark$hadow dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 10/02/2007, 15h39
  3. Réponses: 15
    Dernier message: 26/03/2006, 12h10
  4. Aide pour une fonction
    Par mimi060101 dans le forum Scheme
    Réponses: 1
    Dernier message: 24/02/2006, 16h59

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