Partage
  • Partager sur Facebook
  • Partager sur Twitter

Cryptage saisie de MDP (avec des *) BUG !!

    21 mai 2018 à 20:24:40

    Bonjour, jai recherché comment crypté un mdp sur ce forum et jai trouvé plein de sujets

    jai pris alors un code qui ressemble a ca : 

    for(i=0;i<8;i++) {
        usermdp[i] = getch();
        printf("*");		
    }
    usermdp[i] = '\0';*/

    sauf  que quand j'écris 1 caractère la console maffiche 2 étoiles  et lecaratère compte double ! Comme si le getch() doublait chaque saisie

    une idee du bug svp ? je suis sur W7

    • Partager sur Facebook
    • Partager sur Twitter
      21 mai 2018 à 20:51:35

      salut,

      peut-être le '\n' de la touche ENTREE.

      • Partager sur Facebook
      • Partager sur Twitter
        21 mai 2018 à 22:08:24

        J'appuie pas sur entrée donc pas possible
        • Partager sur Facebook
        • Partager sur Twitter
          21 mai 2018 à 22:49:58

          Hello,

          Chez moi, sous win7, ceci fonctionne comme tu le souhaites:

          #include <conio.h>
          #include <stdio.h>
          
          int main(void) {
          	int i;
          	char usermdp[9];
          	
          	for(i=0;i<8;i++) {
          		usermdp[i] = getch();
          		printf("*");       
          	}
          	usermdp[i] = '\0';
          	
          	puts(usermdp);
          
          	return(0);
          }

          -
          Edité par edgarjacobs 21 mai 2018 à 22:50:16

          • Partager sur Facebook
          • Partager sur Twitter

          On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

            21 mai 2018 à 23:23:31

            Peut être que tu entres des caractères multi-octets et que getch() ne prend qu'un octet à la fois ? (fleches, accents ...)
            • Partager sur Facebook
            • Partager sur Twitter
              23 mai 2018 à 19:05:34

              bonjour ca ne fonctionne toujours pas, et j'entre que des lettres simples de l'alphabet j'aii toujours 2 étoiles qui saffichent et 2 caractère qui sont pris !

              up svp

              PS: je précise que je code sur un .pc (cest du C avec du pro*c pour bases de données)

              -
              Edité par MehdiLeqsiouer 23 mai 2018 à 19:09:13

              • Partager sur Facebook
              • Partager sur Twitter
                24 mai 2018 à 0:34:46

                Détail les étapes que tu fais après que tu ais lancé ton programme, et ce qui est affiché à chaque fois.
                • Partager sur Facebook
                • Partager sur Twitter
                  24 mai 2018 à 20:18:05

                  do {		
                  		printf("Entrez votre login :\n");		
                  		scanf("%s",&userlogin);
                  		viderBuffer();
                  		printf("Entrez votre mdp :\n");
                  		/*for(i=0;i<8;i++) {
                  			usermdp[i] = getch();
                  			printf("*");		
                  		}
                  		usermdp[i] = '\0';*/
                  		scanf("%s",&usermdp);
                  		viderBuffer();
                  		EXEC SQL CONNECT :userlogin IDENTIFIED BY :usermdp;  
                  		if (sqlca.sqlcode == 0) 
                  			printf("Connection reussie !\n");		
                  		else 
                  			test_erreur("Erreur de connection! !\n");
                  		
                  	}while (sqlca.sqlcode != 0); //|| strlen(userlogin) > 25 || strlen(usermdp) > 25);

                  tout simplement, (jai mis en commentaire ce qui marche pas de base, et jenleve le scanf quand je décommente)
                  Le login marche (vu que cest un scanf) mais le mdp a chaque saiise de caractère, jai 2 étoiles qui saffichent et 2 places occupés dans le tableau du mdp
                  • Partager sur Facebook
                  • Partager sur Twitter
                    24 mai 2018 à 22:37:42

                    Alors je n'ai pas <conio.h> ( en gros je n'ai pas la fonction getch() ) mais en utilisant la fonction getchar(); j'ai un problème similaire ( après chaque saisie, le caractère '\n' est enregistrée. Du coût pour lire une chaîne tapé aux clavier j'utilise une autre boucle, donc ça ne répond pas vraiment à ton problème.

                    Par curiosité, que fait ta fonction viderBuffer(); ?

                    • Partager sur Facebook
                    • Partager sur Twitter
                      24 mai 2018 à 22:55:52

                      Re,-

                      Peux-tu faire ceci: tu supprimes tes commentaires et tu commentes ta ligne 11, et tu ajoutes, après la ligne 7: printf("|%c|\n",usermdp[i]); Et tu postes un printscreen.

                      Au fait, tes scanf() sont faux : & en trop....

                      -
                      Edité par edgarjacobs 24 mai 2018 à 22:56:41

                      • Partager sur Facebook
                      • Partager sur Twitter

                      On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                        25 mai 2018 à 18:17:15

                        Voila Edgar ! J'ai entré seulement 3 caractères ('d', 'o' et 'u') et voila ce qui se passe 

                        -
                        Edité par MehdiLeqsiouer 25 mai 2018 à 18:18:02

                        • Partager sur Facebook
                        • Partager sur Twitter
                          25 mai 2018 à 18:34:11

                          Ouuups.... je me suis trompé dans le format. J'aurais voulu que tu mettes "|%02x|". Désolé.

                          Tu es sur que tu n'appuies sur rien d'autres que ces 3 touches.... c'est tellement bizarre.

                          • Partager sur Facebook
                          • Partager sur Twitter

                          On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                            25 mai 2018 à 19:32:41

                            Je suis sur et certain que j'appuie nul part autre...

                            EDIT  : D'accord en fait le cryptage MDP il marche dans un fichier .c seul.

                            Mais dans mon programme pro*c (c'est un fichier .pc) et ben ca fais ce bug... Maintenant pourquoi ? bonne question

                            une idée donc ? 

                            -
                            Edité par MehdiLeqsiouer 25 mai 2018 à 19:45:52

                            • Partager sur Facebook
                            • Partager sur Twitter
                              25 mai 2018 à 20:05:21

                              Re,-

                              Il va falloir que quelqu'un de plus compétent que moi passe par ici. Manifestement, tu as un codage sur deux octets de tes caractères, et je n'ai pas du tout l'habitude de ce genre de chose. Si personne ne te donne un coup de main, tu peux créer un nouveau sujet, avec un titre explicite, du genre "getch() me renvoie 2 octets" (ce n'est qu'une idée).

                              Bon, c'est facile à éviter, il suffit de mettre un second getch() et d'en ignorer le retour, mais ce n'est qu'un pis-aller.

                              -
                              Edité par edgarjacobs 25 mai 2018 à 20:06:55

                              • Partager sur Facebook
                              • Partager sur Twitter

                              On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                                26 mai 2018 à 16:58:10

                                edgarjacobs a écrit:

                                Re,-

                                Il va falloir que quelqu'un de plus compétent que moi passe par ici. Manifestement, tu as un codage sur deux octets de tes caractères, et je n'ai pas du tout l'habitude de ce genre de chose. Si personne ne te donne un coup de main, tu peux créer un nouveau sujet, avec un titre explicite, du genre "getch() me renvoie 2 octets" (ce n'est qu'une idée).

                                Bon, c'est facile à éviter, il suffit de mettre un second getch() et d'en ignorer le retour, mais ce n'est qu'un pis-aller.

                                -
                                Edité par edgarjacobs il y a environ 20 heures

                                Du coup ca fonctionne avec un 2eme getch mais bon.. C'est bizarre

                                • Partager sur Facebook
                                • Partager sur Twitter

                                Cryptage saisie de MDP (avec des *) BUG !!

                                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                • Editeur
                                • Markdown