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 :

Faire un semblant de mot de passe en C [Débutant(e)]


Sujet :

C

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 371
    Par défaut Faire un semblant de mot de passe en C
    bonjour

    je souhaite faire un mot de passe dans mon programme
    en C :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while (code!=123456789){
                    printf("ERREUR de code\n");
                    printf("Mot de passe :");
                    scanf("%d",&code);
                    }
    je suis assez difficile voir perfectionniste... lol
    est til possible de faire apparaitre des asterisques lorsque que lutilisateur saisira le mot de passe
    si oui pouvez vous me dire comment faire ?

    je suis sous BCB6

    merci davance
    cdlt

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    est til possible de faire apparaitre des asterisques lorsque que lutilisateur saisira le mot de passe
    si oui pouvez vous me dire comment faire ?

    je suis sous BCB6
    Plusieurs choses. Un mode de passe n'est en aucun cas une valeur numérique. C'est une chaine de caractères.

    Ensuite, pour faire une saisie masquée, il n'y a pas de solution standard. Une bibliothèque de gestion directe des I/O en mode console permet ça (et fournit probablement une fonction de saisie genre 'getpass()').

    Je recommande PDCurses qui est portable.

  3. #3
    Membre très actif Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    Je recommande PDCurses qui est portable.
    waaah emanuel merci beaucoup !
    Compil your life guy!
    The Aures Project

  4. #4
    Membre confirmé Avatar de amine6441
    Inscrit en
    Novembre 2006
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 85
    Par défaut
    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
    23
    24
    #include<CONIO.H>
    #include<stdio.H>
    #include<string.H>
    int main(void){
    	clrscr();
    	printf("entrer le mots de passe de 5 caractere");
    	char c,*p,*point;
    	c=getch();
    	p=&c;
    	strcpy(point,p);
    	printf("*");
    	for(int i=0;i<4;i++){
    	printf("*");
    	c=getch();
    	p=&c;
    	strcat(point,p);
    	}
    	int test;
    	test=strcmp(point,"12345");
    	if(test>0) perror("Le mots de passe que vous avez entrer est Faux");
    	else printf("\nmerci le mots de passe que vous avez ecris est bon");
    	getch();
    	return 0;
    	}
    Voici ce code mais améliore le par exemple moi j’ai supposer que toutes les mots de passes ont une langueur de 5 caractères toi si tu veux avoir une langueur libre tu vas écrire au lieur de for tu vas faire while c=getch() et différente du code ASCII du retours chariot faire

  5. #5
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 977
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 977
    Par défaut
    Loe,
    Citation Envoyé par amine6441 Voir le message
    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
    23
    24
    #include<CONIO.H>
    #include<stdio.H>
    #include<string.H>
    int main(void){
    	clrscr();
    	printf("entrer le mots de passe de 5 caractere");
    	char c,*p,*point;
    	c=getch();
    	p=&c;
    	strcpy(point,p);
    	printf("*");
    	for(int i=0;i<4;i++){
    	printf("*");
    	c=getch();
    	p=&c;
    	strcat(point,p);
    	}
    	int test;
    	test=strcmp(point,"12345");
    	if(test>0) perror("Le mots de passe que vous avez entrer est Faux");
    	else printf("\nmerci le mots de passe que vous avez ecris est bon");
    	getch();
    	return 0;
    	}
    Voici ce code mais améliore le par exemple moi j’ai supposer que toutes les mots de passes ont une langueur de 5 caractères toi si tu veux avoir une langueur libre tu vas écrire au lieur de for tu vas faire while c=getch() et différente du code ASCII du retours chariot faire
    catastrophe !!

    Avant de le compléter, il faudrait surtout commencer par corriger toutes les erreurs.

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par amine6441 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #include<CONIO.H>
    #include<stdio.H>
    #include<string.H>
    int main(void){
    	char c,*p,*point;
    	c=getch();
    	p=&c;
    	strcpy(point,p);
    	}
    Ton code est complètement faux et montre que tu ne connais rien au langage C. STP, arrête d'intervenir, écoute et apprends. Quand tu auras compris ce qu'est un pointeur tu pourras contribuer. Tu peux aussi poser des questions.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 106
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    Ton code est complètement faux et montre que tu ne connais rien au langage C. STP, arrête d'intervenir, écoute et apprends. Quand tu auras compris ce qu'est un pointeur tu pourras contribuer.
    Qui modère ce modérateur ?
    Une manière un peu plus correcte de répondre aux membres serait plus agréable à la lecture du forum.

    Merci.

  8. #8
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par jack_x4 Voir le message
    Qui modère ce modérateur ?
    Une manière un peu plus correcte de répondre aux membres serait plus agréable à la lecture du forum.

    Merci.
    Je ne crois pas que la remarque d'Emmanuel soit injustifiée. Le minimum avant de poster, c'est de tester son code. Le code posté par amine6441 contient de grosses erreurs. Par ailleurs, l'auteur de ce code est un récidiviste...

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  9. #9
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par jack_x4 Voir le message
    Une manière un peu plus correcte de répondre aux membres serait plus agréable à la lecture du forum.
    Si tu penses que mon message est mal rédigé, tu peux proposer une autre forme et je me ferais un plaisir de corriger mon texte pour qu'il te soit plus agréable. Mais pas question d'en modifier le fond.

    (Je rappelle que je suis informaticien et pas écrivain...)

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 106
    Par défaut
    bonjour Emmanuel Delahaye,

    Le fond du message est justifiable. Par contre la manière dont c'est dit m'a assez surpris. Je revendique un peut plus de souplesse dans la manière de dire les choses

    Sans rencune,
    bien cordialement,

    Jack

  11. #11
    Membre émérite
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Par défaut
    Pourquoi pas ceci:

    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
     
    #include <stdio.h>
    #include <unistd.h>
    #include <string.h>
     
    int main(void)
    {
        const char *password = "bonjour";
     
        while (strcmp(getpass("Password: "), password)) {
            printf("Incorrect.\n");
        }
        printf("You got it.\n");
        return 0;
    }

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 41
    Par défaut
    Pour ton mot de passe, moi je l'encoderai. Car un mot de passe c'est censé être secret ???

    Essaye de l'encoder, il existe le systeme MD5 par exemple.

  13. #13
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 401
    Par défaut
    Le mot_ de passe est "censé être secret", mais cela sort du cadre du fichier source proposé: Il était question ici d'entrer le mot de passe sans qu'il s'affiche, et non de la cuisine derrière.

    Mais en effet, pour un vrai usage le mot de passe doit être socké d'une manière plus sécurisée, de préférence à sens unique (hachage pur, système unix (hachage+transformation en clé+cryptage d'une chaîne fixe), etc.)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/11/2009, 18h00
  2. Réponses: 9
    Dernier message: 14/02/2009, 00h14
  3. Faire afficher un mot de passe
    Par figatelliSTI dans le forum Zend Framework
    Réponses: 3
    Dernier message: 15/07/2008, 15h42
  4. Débutant: Comment faire un bouton avec un mot de passe
    Par ch@rles.be dans le forum Sécurité
    Réponses: 1
    Dernier message: 06/02/2007, 20h37

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