Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Il primo Micro RGB di Samsung per il salotto è il 65 pollici da 2.749 euro. Sul banco di misura abbiamo rilevato 2.000 nit di picco, nero assoluto con il local dimming e il 91,4% del BT.2020, il colore più ampio che abbiamo misurato su un LCD
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
Apple ha rinnovato iPhone 18 Pro soprattutto dentro: chip A20 Pro a 2 nm con memoria affiancata al SoC, camera di vapore tre volte più ampia, Dynamic Island più piccola del 25% grazie a Face ID sotto il display e fotocamera principale con diaframma variabile da f/1.48 a f/4. Lo abbiamo misurato al colorimetro e nei benchmark, usato con iOS 27 e messo alla prova in fotografia tra laghi, borghi e interni poco illuminati
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
A Londra, per il trentennale dei Toughbook, Panasonic ha presentato il tablet G3 e il 2-in-1 34. Con Jon Tucker, a capo dell'ingegneria europea, abbiamo parlato di ciò che non si vede: batterie, antenne, porte seriali e accorgimenti nati sul campo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-09-2006, 14:26   #1
claori
Junior Member
 
Iscritto dal: Jul 2006
Messaggi: 7
[C] utilizzo delle pw

Ciao a tutti, ho un problema!

Ho bisogno di fare in modo che inserendo una password da terminale non sia possibile visualizzarla mentre la si sta inserendo.

L'unica funzione che ho trovato a tale fine è getpass() che fa parte della libreria crypt.h.
Il problema di questa funzione è che genera un buffer overflow visto che non c'è nessun controllo sull'input.
Qualcuno ha qualche soluzione???
Come posso creare in C una funzione che non faccia visualizzare la pw a terminale???
Grazie
Claudia
claori è offline   Rispondi citando il messaggio o parte di esso
Old 26-09-2006, 15:05   #2
Gino+89+
Member
 
L'Avatar di Gino+89+
 
Iscritto dal: Nov 2005
Città: Mantova
Messaggi: 115
Prova a vedere questo:

#include <stdio.h>
#include <conio.h>

int main()
{
int i;
char car;
char password[20];

printf("Inserisci password:");

for(i=0;i<20;i++)
{
car=getch();
password[i]=car;
if(car==13)
break;
else
printf("*");
}

password[i]='\0';

printf("\n\nPassword inserita: %s",password);

getch();
return 0;
}
Gino+89+ è offline   Rispondi citando il messaggio o parte di esso
Old 26-09-2006, 15:27   #3
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Ricordo di una funzione, ma non ricordo quale...

Puoi fare manualmente qualcosa del genere:
Codice:
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
#endif

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <termios.h>
#include <sys/mman.h>
#include <unistd.h>

char *getpass(const char *prompt)
{
	struct termios tios;
	struct termios torg;
	char *buf = mmap(NULL, getpagesize(), PROT_READ|PROT_WRITE,
		MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
	char *ret;

	if (mlock(buf, getpagesize())<0)
		fprintf(stderr, "Aehm... ;-)\n");

	tcgetattr(fileno(stdin), &tios);
	torg = tios;

	tios.c_lflag &= ~ECHO;
	tcsetattr(fileno(stdin), TCSAFLUSH, &tios);

	printf("%s", prompt);
	fflush(stdout);

	ret = fgets(buf, getpagesize(), stdin);
	printf("\n");

	tcsetattr(fileno(stdin), TCSAFLUSH, &torg);

	if (ret!=NULL) {
		int len = strnlen(buf, getpagesize());
		if (len==getpagesize()) {
			fprintf(stderr, "Error: password too long\n");
			munmap(buf, getpagesize());
			ret = NULL;
		} else {
			// Elimina il '\n' finale
			if (len>1)
				ret[len-1] = '\0';
		}
	}
	return ret;
}

int main()
{
	char *p = getpass("Enter password: ");
	printf("Password: %s\n", p);
	munmap(p, getpagesize());
	return 0;
}
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12

Ultima modifica di ilsensine : 26-09-2006 alle 15:30.
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 27-09-2006, 08:32   #4
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
infatti dal man getpass
Quote:
...
This function is obsolete. Do not use it.
...
che sistema usi ? Linux se non ricordo male ...
OT: a proposito com'é finita la storia delle librerie ? ha funzionato ? non m'hai fatto sapere piú niente ... /OT

Come giá t'ha postato ilsensine dovresti usare i termios ... é un po lunga da spiegare.
Questa funzione abilita/disabilita l'echo del carattere premuto tramite un flag della struttura termios:
Codice:
/*                                *\
\*                                */
int EchoOnOff(int On)
{
   struct termios attr;

   if(!(isatty)(STDIN_FILENO))
      return IOERROR;

   if((tcgetattr)(STDIN_FILENO,&attr) < 0)
      return IOERROR;

   if (On)
      attr.c_lflag &= ~ECHO;  // DISABILITA L'ECHO
   else
      attr.c_lflag |= ECHO;   // ABILITA L'ECHO

   if((tcsetattr)(STDIN_FILENO,TCSAFLUSH,&attr) < 0)
      return IOERROR;

   return 0;
}
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre iPhone 18 Pro: la recensione del miglior iPhone ...
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34 Panasonic, 30 anni di Toughbook: la "Bibbia...
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
SpaceX mostra nuove immagini del lancio ...
Cina: CAS Space e Guangzhou Laboratory e...
Nikon Comedy Wildlife Awards 2026: le fo...
Samsung Galaxy A57 e A37 costano di più ...
Windows 11 26H2 taglia il consumo di RAM...
KINGPIN è tornato! Il re dell'ove...
CPU usata, ban ereditato: il caso del Ry...
Spunta un engineering sample di Ryzen 9 ...
iPhone 18 Pro, alcuni utenti segnalano s...
Android Auto: Gemini ascolta la domanda ...
OpenAI avvisa oltre 100 organizzazioni p...
Dall'AI alla SI: il rebranding di Trump ...
0patch offrirà supporto esteso pe...
Sudo sembra un iPod, ma nasconde una car...
Meta, OpenAI e Google rifanno OpenClaw: ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 02:08.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v