Passwort


  • Mod

    enno-tyrant schrieb:

    warum nicht gleich:

    if(Passworteingabe==Passwort){mach das}
    else{mach jenes};
    

    ???

    weil man nur arithmetische typen, enums und pointer vergleichen kann? (und klassen, für die ein op== definiert ist, klar) obiges würde also zum vergleich von pointern führen und nie war sein.



  • 5er1al schrieb:

    so funktioniert es, hab es auf 4 rechnern, und 2 verschiedenen IDEs getestet!

    manchmal funktioniert es und es ist trotzdem falsch.

    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    #include <iostream.h>  // du verwendest die alten header
    #include <conio.h>
    using namespace std;   // mit alten headern nicht notwendig
    
    //---------------------------------------------------------------------------
    
    #pragma argsused
    int main(int argc, char* argv[])
    {
       int vergleich;
    
       char Passwort[5],Passworteingabe[5]; // du wilst ein 5-stelliges passwort siehe unten
                                           // dann sind fünf zeichen zuwenig ( ein fünfsstelliges passwort besteht aus 6 zeichen '\0' nicht vergessen
    
       cout << "Legen Sie ein 5-stelliges Passwort fest! ";
       cin >> Passwort; 
       cout << "Vielen Dank! Das Passwort wurde gespeichert.\n"; 
       cout << "\nGeben Sie das Passwort ein, um Zugriff auf die Daten zu haben!\n";
       cin >> Passworteingabe; 
       vergleich=strcmp(Passworteingabe, Passwort); 
    
       if(vergleich==0) 
          cout << "Das Passwort ist richtig!\n" 
          "Sie können jetzt Links hinzufügen oder löschen.\n";
    
       else cout << "Das Passwort ist falsch!" 
         "\nGeben Sie nochmal ein!\n";
    
       getch();  // mag ich persönlich überhaupt nicht. will das aber jetzt nicht erklären sonst wirds philosophisch
            return 0;
    }
    //---------------------------------------------------------------------------
    

    BTW: habe obigen code auch mit g++ getestet und er läuft. 😮
    scheinbar reserviert g++ bei char s[5] auch auf dem stack mehr als 5 chars. ( padding ? )

    um nicht nur zu kritisieren.
    ich würde es so machen.

    #include <iostream>
    #include <cstring>
    using namespace std;
    
    int main()
    {
    	string Passwort,Passworteingabe;
    	cout << "Legen Sie ein 5-stelliges Passwort fest! ";
    	cin >> Passwort;
    	cout << "Vielen Dank! Das Passwort wurde gespeichert.\n";
    	cout << "\nGeben Sie das Passwort ein, um Zugriff auf die Daten zu haben!\n";
    	cin >> Passworteingabe;
    	if ( Passworteingabe == Passwort)
    	    cout << "Das Passwort ist richtig!\n"
    	            "Sie können jetzt Links hinzufügen oder löschen.\n";	
    	else 
    	   cout << "Das Passwort ist falsch!"
    	           "\nGeben Sie nochmal ein!\n";
            return 0;
    }
    

    K.



  • <cstring> ??? 😕



  • sorry
    #include<string>
    K.



  • @ZuK, der Quellcode war nich von mir...hab nur das getch() eingefügt, um zu demonstrieren,wie der Code rbei mir aussieht, und wo er funktioniert....verstehst?!

    [EDIT] natürlich würd ich auch string nehmen...passwort verschlüsselt speichern etc...


  • Mod

    wenn du verschlüsselst darfst du nat. keinen std:string nehmen. sonst gibt es keine garantie, dass es nicht doch irgendwo noch unverschlüsselt im speicher rumgeistert 🙂



  • na, wenn ich verschlüssel für die user, die mit dem prog umgehen, kann das ruhig im speicher rumgeistern...die wissen nichmal wasn speicher is...;)!


  • Mod

    dann ist verschlüsseln eigentlich schon wieder zuviel aufwand, sternchen tuns auch - http://www.bash.org/?244321 😃



  • naja, nen bisschen aufwand muss schon sein 😉



  • bei euren Lösungsvorschlägen ist aber der Datenschutz nicht gewährleistet, denn man kann das Paßwort bei Eingabe auf dem Bildschirm sehen 😉 (siehe dazu mein erster Beitrag)

    cout<<"Bitte Password eingeben!"<<endl; 
    for(int i=0; i<4 ;i++){ 
      pw[i] = getch(); 
      cout<<"*"; 
    } 
    pw[4]='\0';
    


  • Hallöchen @ all,
    ich hätte nie mit so einer Resonanz und guten Tips gerechnet. 👍
    Ihr seit echt die ALLERBESTEN!!!!!!

    Programm läuft 😮 -Dank Euch!

    EURE susa:-)
    😃


Anmelden zum Antworten