Entrer Secretement un Mot de Passe en console

Résolu
Xpin² Messages postés 4 Statut Membre -  
Xpin² Messages postés 4 Statut Membre -
Bonjours !
Voilà, sur une application linux en console, j'aimerai que l'utilisateur rentre un mot de passe, sans qu'il ne soit affiché sur le stdout. Si vous avez une idée ...?

4 réponses

  1. arth
     
    as tu pensé au getchar()? bon je suis d'accord y faut pas se planter
    en entrant le mot de passe...
    0
  2. arth
     
    oublie ce que je viens de dire. ou alors stocke chaque lettre entrée mais appelle à chaque une fonction de rafraichissement qui va remettre la fenetre du depart.
    0
  3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Utilises la commande "stty" (man stty pour plus d'info).
    Entre autre dans le "man" on trouve :
    Un `[-]' devant un argument signifie que l'on peut l'inhiber en le
    faisant précéder d'un `-'.

    Un exemple :
    #!/bin/bash
    # script.sh
    
    echo "Entrez votre mot de passe :"
    stty -echo
    read passe
    stty echo
    echo "Votre mot de passe est : $passe"
    exit
    ;-)
    0
  4. Xpin² Messages postés 4 Statut Membre
     
    Merci !! Cette methode marche du feu de dieu !!
    En effet, dsl je n'avais pas precisé que je programmais en C mais en utilisant popen() çà marche !

    avec, comme fichier "pass"
    #!/bin/bash
    # script.sh
    
    stty -echo
    read passe
    stty echo
    echo "$passe"
    exit
    Je fais :
    char tmp[15];
    fgets(tmp, 15, popen("./pass","r" ) );
    et le passe qui n'a pas été affiché est rangé dans "tmp". Merci
    0