PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Passwort eingeben



elch
09-04-2005, 19:34
moin,

kann mir jemand in etwa sagen, wie man eine Passwort-Eingabe programmieren könnte? Unter Windows (in der Schule mit Borland) lies sich das relativ simpel mit getch() lösen. Ein Äquivalent unter Linux hab ich aber noch nicht gefunden, wohl auch weil ich noch garnicht weiß, mit welcher Hilfe ich wo welche Funktion finden kann.
Die Eingabe soll so sein wie man es von einer Passwort-Eingabe erwartet:
Tippen, ohne etwas (meinetwegen Sternchen..) zu sehen.
Also.. kann mir jemand helfen? ;)

thx im voraus.

locus vivendi
09-04-2005, 21:14
Nur eine ganz kurze Antwort:
ftp://ftp.gnupg.org/gcrypt/pinentry/

howtnted
09-04-2005, 22:07
das is ja ne tolle antwort.....
schau dazu einfach mal in meinen letzten Thread... da gehts um conio.h und getch(); und das du da auch flush usw brauchst! Einfach mal reinlesen is einer der aktuellsten Threats. Dann kannste deinen code eigentlich fast kopieren!

cu Hotte
achja mal ne frage an dich: wo gehst du zur schule? Wir arbeiten auch mit borland 5.02 -.- *würg*

elch
09-04-2005, 22:41
berufskolleg in Mönchengladbach.. da ist Borland pflicht *ürx*
ich hab allerdings mein eigenes Notebook und progge mitm gcc und kate, vi oder sowas. Das meiste was dabei rauskommt ist sogar portabel ;)

danke für den Link, ich gucks mir grad an..

elch
13-04-2005, 11:29
ich erweitere die Aufgabenstellung mal:
Wie lese ich Buchstaben zeichenweise ein? D.h. nach jedem (!) Drücken einer Taste will ich irgendeine Funktion ausführen, was ja mit scanf( "%c" ..., getchar() usw. nicht funktioniert, denn da will er nach jedem Buchstaben ein <enter> haben und speichert diese <enter> dann auch noch.
Gemäß dem alten Unix-Prinzip 'für jeden Scheiß eine Datei' ;) glaube ich, dass man da irgendwo per fopen einen Stream öffnen muss und diesen dann per fgetc oder was zur Hölle auch zeichenweise einlesen kann... Nur wie, wo, wann?
Helft mir! ;)
Ich werd mir nochn paar Bücher über Programmierung an Land ziehen..

// Aktualisierung:
Da war doch was mit /dev/pts/[0-9] usw.. jedenfalls hat mir das lsof gesagt.
Wenn ich nun das zum Programm gehörige (Pseudo)Terminal öffne, könnte ich doch jedes Zeichen einzeln auslesen, right?
Fehlt mir nur noch die Funktion, die mir jeweils den Pfad zu dem Terminal liefert..

locus vivendi
13-04-2005, 16:17
ch erweitere die Aufgabenstellung mal:
Wie lese ich Buchstaben zeichenweise ein? D.h. nach jedem (!) Drücken einer Taste will ich irgendeine Funktion ausführen, was ja mit scanf( "%c" ..., getchar() usw. nicht funktioniert, denn da will er nach jedem Buchstaben ein <enter> haben und speichert diese <enter> dann auch noch.
Das kann man jetzt aber echt auch durch Google rausfinden... und falls du zufälligerweise ein System verwendest, welches die GNU C-Bibliothek benutzt: Dort ist sogar ein kleines Beispiel-Programm im Texinfo-Manual enthalten ("info libc" eingeben). Das hilft dir doch weiter, oder?

elch
13-04-2005, 19:46
hm, kann sein dass man das per Google finden kann. Ich bin nur absoluter Anfänger und hab von tuten und blasen keine Ahnung ;)
Mein System ist übrigens Linux. "info libc" einzugeben hab ich gebacken bekommen, sogar das Texinfo-Manual hab ich gefunden (glaub ich zumindest), nur das von dir angesprochene Beispiel-Programm nicht.
Trotzdem danke für die Hilfe.

locus vivendi
13-04-2005, 20:40
Ich bin nur absoluter Anfänger und hab von tuten und blasen keine Ahnung
Okay, dann werde ich mich mal nicht lumpen lassen: Wenn du info libc hast, gibt es dort einen Unterpunkt namens Low-Level Terminal Interface. Da kannst du den Unterschied zwischen Canonical- und Noncanoncal-Mode nachlesen. Das ist für dich wesentlich. Und unten gibt es dann noch einen Unterpunkt namens Noncanonical Example.

elch
13-06-2005, 21:14
bevor ich einen neuen Thread erstelle..
Jetzt suche ich eine simple Funktion zur Passworteingabe.
getpass() soll deprecated sein, was nehm ich jetzt?
Der Link oben (ftp.gnupg.org...) funktioniert grad nicht, sonst hätte ich da noch zuerst geguckt.