Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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: 6402
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 ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM