Passwortabfrage in C++

Nigges

Grünschnabel
hallo,

ich bin recht neu in der sache aber ich soll eine passwortabfrage in c++ schreiben kann mir jemand sagen wie das geht?

danke
 
benutzername und passwort einlesen und dann aus einer Liste den Benutzernamen heraussuchen und mit dem in der Liste gespeicherten Passwort vergleichen.
 
hier eine kleine Funktion, um dei zwei Strings zu vergelichen. DEr REst sollte klar sein.
Es gibt sicherlich auch noch ne elegantere Methode aber ich habe auf die schnelle keine CPP-Integrierte Lösung gefunden...
Code:
bool vergleich(char a[], char b[])
{
int i=0; 	//counter
bool status;	//status-wert		
 if(sizeof(a)==sizeof(b))//Wenn die groesse gleich ist...
 {
  for(i=0;i<sizeof(a)/*weil char = ein byte */;i++)
  {
   if(a[i]==b[i])//Eine Zelle nach der anderen abgleichen
   {
    status=true; //bei uebereinstimmung der Zellen den status-wert auf true 
                 //setzen
   }
   else
   { 
    status=false;//bei nicht-uebereinstimmung status-wert auf false setzen und  		 //abbrechen
    break;
   }
  }
 }
 else {status=false;}//Wenn die groesse nicht gleich ist den status-wert auf    		     //false setzen
 
 //durch status-wert den rueckgabewert auswaehlen
 if(status==true) {return 1;}
 else {return 0;}

};


Viel Spass damit.]
 
Wenn schon in C char Arrays vergleichen dann bitte so:
strcmp
strcmp
Syntax

#include <string.h>

int strcmp(const char *s1, const char *s2);

Description

This function compares s1 and s2.

Return Value

Zero if the strings are equal, a positive number if s1 comes after s2 in the ASCII collating sequense, else a negative number.

Portability

ANSI/ISO C C89; C99
POSIX 1003.2-1992; 1003.1-2001

Example

if (strcmp(arg, "-i") == 0)
do_include();
 
Zuletzt bearbeitet:
In C++ sieht eine kurze Passwortabfrage dann so aus:

Code:
#include <string>
using namespace std;
...
string sInputLogin;
string sInputPass;

cout << "Login: ";
cin >> sInputLogin;
cout << "Password for " << sInputLogin << ": ";
cin >> sInputPass;

if(sInputLogin == "admin" && sInputPass == "qwertzuiop")
    cout << "Login OK" << endl;
else{
    cout << "Login failed" << endl;
    return;
}
 
hallo erst mal,

habe eine kleine frage dazu:

habe ich die möglichkeit per escape sequenz (in der Windows Konsole) den hintergrund und die schriftfarbe zu ändern?

Ziel: es soll vermieden werden das jeman bei der passworteingabe das passwort lesen kann.

programmiere mit ms visual c++ 6.0

MFG und vielen Dank :D
 
@Thomas: Wie gesagt es gibt auch noch elegantere Lösungen. Nur bei der beschreibung, die ich von strcmp hatt stand drin, dass es in erster Linie die Länge der Zeichenketten vergleicht.
Aber wenn die Funktiojn auch den Inhalt vergleicht würde ich auch strcmp nehmen...
 
In der Windows-Konsole geht das nur über Umwege (extra-Bibliotheken)

Die Sache zu strcmp:
Solange man weiss, dass strcmp bis zu einem \0 alle chars (deren ASCII-Code) vergleicht, muss einem natürlich auch klar sein, dass wenn es kein \0 am Ende gibt natürlich ein Speicherfehler auftreten kann (bzw höchstwahrscheinlich wird)

strncmp einem Programmier-Anfänger zu propagieren finde ich überflüssig. Im Laufe der Programmierung setzt man sich schon noch mit den ganzen n-Funktionen auseinander.
Und wenn nicht, dann sollte man lieber gleich zu string aus der STL greifen.

Meine Meinung: ANSI C ist halt nichts für Anfänger, aber gut um anzufangen.

Zum ANSI C programmieren gehört natürlich auch valgrind, da werden evt. Speicherlecks sehr gut sichtbar.
 
Zurück