|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2011
Città: Parma
Messaggi: 313
|
[C/C++]Nascondere caratteri inseriti
Salve a tutti
Vorrei sapere come nascondere i caratteri che inserisco nei linguaggi C/C++ Mi servirebbe per nascondere una password.... grazie |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: May 2009
Messaggi: 1413
|
Quote:
![]() Interesserebbe anche a me.. Grazie
__________________
PC: Carbide 400r, Corsair TX650M, FX8320, CM 412s, Gigabyte 970-UD3, G.skill Ares 2x4GB, Crucial M500 120GB, Seagate 7200.14 2TB, Seagate 7200.12 750GB, Gigabyte GTX570. Windows 10 Pro Notebook: Dell Latitude E7450, i5-5300U, SSD 256Gb, 8GB. Windows 10 Pro LG G3 |
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 2011
Città: Parma
Messaggi: 313
|
Bene,a questo punto siamo in due
Aspettiamo risposte.... |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
Non lo so.... non ci ho mai provato... però stavo pensando... e spero di non dire cacchiate...
forse potresti provare a chiudere il flusso per lo stdout e ad ogni input di carattere (che ovviamente bufferizzerai da qualche parte) mandi un asterisco o proprio niente... quando ho un po di tempo ci provo... fammi sapere se è possibile |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
Non va ho fatto una prova al volo
Codice:
int main(){
fclose(stdout);
char t = getchar();
printf("Caio %c\n", t);
return 0;
}
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Oct 2011
Città: Parma
Messaggi: 313
|
ah,peccato...
Fa niente,cambio progetto |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
Non so cosa ci devi fare ma secondo me dovresti insistere
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Oct 2011
Città: Parma
Messaggi: 313
|
niente...volevo solo imparare qualcosina in più col c/c++
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
A ok... comunque c'è una nuova pista se ti interessa ancora...
Codice:
int getch(void) |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Oct 2011
Città: Parma
Messaggi: 313
|
ma al posto di void cosa ci devo mettere??
Scusa per questa domanda(sono un principiante in programmazione) |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: May 2009
Messaggi: 1413
|
Ci ho provato ma dava problemi sulla stringa di memorizzazione...
In compenso ho trovato questo funzionante Codice:
#include <cstdlib>
#include <iostream>
#include <conio.h>
using namespace std;
#define MAX_LENGHT 128
#define ENTER 13
#define BACKSPACE 8
char ch;
char password[MAX_LENGHT];
const char *mypass="asilas";
int pos=0;
int main()
{
cout <<"Please enter the password:\n";
while(true)
{
ch=getch();
if(pos>=MAX_LENGHT) {cout<<'\a'; continue;} /* beep if password is too long */
if(ch==ENTER) break; /* User have pressed ENTER*/
else if(ch==BACKSPACE) /* BACKSPACE was pressed*/
{
cout <<"\b \b";
password[--pos]='\0';
}
else/* A..Z a...z BUG: I forgot what... */
{
cout <<"*";
password[pos++]=ch;
password[pos]='\0';
}
if(pos<=0) pos=0;
}
if(strcmp(password,mypass)==0) cout <<"\nCorrect password!\n";
else cout <<"\nAccess denied!\n";
cout.flush();
cin.get();
return EXIT_SUCCESS;
}
__________________
PC: Carbide 400r, Corsair TX650M, FX8320, CM 412s, Gigabyte 970-UD3, G.skill Ares 2x4GB, Crucial M500 120GB, Seagate 7200.14 2TB, Seagate 7200.12 750GB, Gigabyte GTX570. Windows 10 Pro Notebook: Dell Latitude E7450, i5-5300U, SSD 256Gb, 8GB. Windows 10 Pro LG G3 |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Oct 2011
Città: Parma
Messaggi: 313
|
ottimo
provo subito anch'io |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Oct 2011
Città: Parma
Messaggi: 313
|
funziona alla perfezione,però sto analizzando meglio il source code per capirlo bene
credo di averlo capito abbastanza bene.... però c'è una cosa che non capisco:cosa sono "\b" e "\a" ? Ultima modifica di MissaW_RaZ_98 : 11-11-2011 alle 19:41. |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Jan 2007
Messaggi: 2267
|
Sequenze di escape. Cerca nella documentazione C++ relativa a stringhe e caratteri...e dovrebbe venirti indicato il significato...come \n per indicare nuova riga.
__________________
Concluso con:... |
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Jul 2008
Messaggi: 8232
|
In qualche modo è possibile farlo in maniera pulita usando la funzione kbhit() e in occorrenza della pressione di un tasto andare a leggere quale carattere è stato premuto dallo stream della tastiera.
Domani provo
__________________
System Failure |
|
|
|
|
|
#16 | |
|
Member
Iscritto dal: Sep 2008
Città: Milano
Messaggi: 126
|
Quote:
In generale quello che devi fare è disabilitare l'echoing sul terminale in uso. ciao! |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:05.





















