Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hi leute,

ich würde gerne eine kleine Consolen Anwendung schreiben welche ein Passwort verlangt.

die eingabe des Passwortes sollte nicht angezeigt werden, bzw. mann sollte nur Sternchen sehen...

->Wie kann ich das realisieren??

->Gibt es da schon eine Funktion?

- muss ich dazu eine bestimmte Bibliothek includen??

Ich verwende den Dev-C++ Compiler ver. 4.9

Danke im Vorraus!

Geschrieben

Dazu musst Du an Dein System ran, d. h. die Zeichendarstellung der Console muss veraendert werden mit einer compilerspezifischen Funktion. Mit reinen Standardsprachmitteln ist es m. E. nicht moeglich.

Geschrieben

Hmmm...ist zwar keine schöne Lösung ( C und C++ gemischt) und nur schnell zusammengeschustert, aber Du kannst das ja modifizieren.

Das Prog bricht halt nach 10 Eingaben ab und gibt das Passwort aus.

#include <iostream>

#include <string>

#include <conio.h>

using namespace std;

int main(int argc, char** argv)

{

char myChar = 'a';

string pass = "";

while(1) {

myChar = getch();

pass += myChar;

if(pass.length() == 10)

break;

cout << "*";

}

cout << endl << pass;

cin.get();

return 0;

}

Geschrieben

Also meine Version find ich schoener :D

printf("Passwort:");
char passw[10];
int i = 0;
char c;

c = getch();

while(c != char(0x0D) && i < 10)
{
putch('*');
passw[i] = c;
i++;
c = getch();
}

passw[i] = 0x00;
printf("\nDas Passwort war:%s\n",passw);[/PHP]

Goos

  • 2 Monate später...
Geschrieben

Habe bei meinem Thread leider auf den falschen Button gedrückt, jetzt ist der closed :rolleyes:

Daher frage ich eben hier:

Goos, kannst Du mir folgende Zeile erklären?

while(c != char(0x0D) && i < 10)

Die while-Schleife als solche ist klar, nur mit dem 0x0D kann ich nichts anfangen.

Geschrieben

Das mit dem 0x0D is einfach nur fuer die Entertaste mit der die Passwort Eingabe abgeschlossen werden soll.

Du koenntest....was weiss ich...*nachguck*...auch 0x4D nehmen, dann hoert die Eingabe halt auf, sobald du ein M eingibst :)

Ich hoffe, das hilft dir weiter.

Goos

Geschrieben

Nuja...man nehme zum Beispiel eine ASCII Tabelle, oder man probierts aus indem man sich den Code der entsprechenden Taste holt.

z.B. mit


int c = getch();
c = getch();
printf("Sondertaste mit Code %d", c);
[/PHP]

...was aber nur bei Sondertasten funktioniert.....alle anderen muesstest in dem einfachen Beispiel doppelt druecken :)

Hier wuerdest dann fuer Enter eine 13 bekommen, was Hexadezimal notiert dann das 0x0D waere.

Goos

Geschrieben

Jetzt folgt ein Consolenprogramm, das euch den Zugang ins PENTAGON ermöglicht! *lol*

Aber vorsicht!

Nach dem dritten fehlerhaften Versuch, bricht es ab und piept! *g*

Das Programm benutzt Bibliotheken aus dem BORLAND C-BUILDER 5!

//---------------------------------------------------------------------------

#include <stdio.h>

#include <conio.h>

#include <string.h>

void main()

{

const char *pers_nr = "666"; //Zugangsnr (MAXIMAL 8 ZEICHEN)

const char *code = "drin"; //Zugangscode (MAXIMAL 8 ZEICHEN)

char *ab_pers; //Abgefragte Zugangsnr

char *ab_code; //Abgefragter Zuganscode

int i = 0; //Schleifendurchläufe

int codeguard; //Rückgabewert des Stringvergleiches

for(i=0;i<3;)

{

printf(" ENTRY TO PENTAGON\n");

printf(" ~~~~~~~~~~~~~~~~~\n");

ab_pers = getpass(" IDNR: ");

printf(" \n");

codeguard = strcmp(pers_nr, ab_pers);

if((codeguard > 0) || (codeguard < 0))

{

i++;

gotoxy(45, 30);

printf("!! WRONG IDNR !!\n");

gotoxy(45, 31);

printf("!! ACCESS DENIED !!\n ");

if(i == 3)

{

gotoxy(45, 33);

printf("!! SYSTEM ABBORTED !!\n\a ");

getch();

continue;

}

else

{

getch();

clrscr();

continue;

}

}//if

ab_code = getpass(" PASSWORD: ");

printf(" \n");

codeguard = strcmp(code, ab_code);

if((codeguard > 0) || (codeguard < 0))

{

i++;

gotoxy(45, 30);

printf("!! WRONG PASS !!\n");

gotoxy(45, 31);

printf("!! ACCESS DENIED !!\n ");

if(i == 3)

{

gotoxy(45, 33);

printf("!! SYSTEM ABBORTED !!\n\a ");

getch();

continue;

}

else

{

getch();

clrscr();

continue;

}

}//if

gotoxy(45, 30);

printf("!! ACCESS GRANTED !!\n\a ");

i = 3;

getch();

}//for

}//main

//---------------------------------------------------------------------------

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...