Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Come nascondere una stringa durante l'inserimento?
Forum - C/C++ - Come nascondere una stringa durante l'inserimento?

Avatar
Adone (Normal User)
Newbie


Messaggi: 6
Iscritto: 20/08/2011

Segnala al moderatore
Postato alle 22:15
Sabato, 24/09/2011
Ciao di nuovo a tutti :)
Oggi ho particolarmente bisogno del vostro aiuto ahah :D
Mi domandavo in un codice semplice del tipo:

Codice sorgente - presumibilmente Plain Text

  1. printf("Inserisci password:\n);
  2. scanf("%s", password);



com'è possibile fare che la password che l'utente scrive non sia visibile in chiaro ma venga nascosta, o sia sostituita man mano che la scrive da asterischi, insomma qualcosa del genere?!
Avevo pensato a qualcosa del tipo:

Codice sorgente - presumibilmente Plain Text

  1. printf("Insert password:\n");
  2. while((c=getchar())!='\n'){
  3.         pwd[i]=c;
  4.         printf("\b");
  5.         i++;}



ma evidentemente è impossibile che funzioni :_doubt:
Sapreste aiutarmi? Vi ringrazio in anticipo!

Ultima modifica effettuata da Adone il 24/09/2011 alle 22:17
PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5473
Iscritto: 03/01/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 22:27
Sabato, 24/09/2011
Non esiste nativamente qualcosa che lo faccia in C. Devi operare con l'input di carattere per carattere.

Ma dipende dal sistema operativo con cui operi.

Sono su osx...e come faccio a operare singolarmente carattere per carattere? - Adone - 24/09/11 22:34
Puoi usare queste funzioni : http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man3/getch.3x.html - nessuno - 24/09/11 22:42
o my god :S è un macello! Ora mi leggo un pò cosa dice...ma sembra parecchio complicato.. - Adone - 24/09/11 22:49
Allora, alla fine ho trovato un'altra soluzione. Se a qualcuno servisse esiste la funzione getpass(). Che può essere utilizzata così: char password[Lunghezza]; if (!readpassphrase("Inserisci password:", password, Lunghezza, 0)) { printf("Errore!\n"); } printf("%s", password); - Adone - 25/09/11 13:53


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM