Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » pw abfrage

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ] [ 3 ]
000
20.07.2004, 12:19 Uhr
~noknow
Gast



C++:
#include <iostream.h>

int main()
{
    char pw[] = "hallo";
    char pwa[6];


    while(true)
    {
        cin >> pwa;

        if(pwa[0] == pw[0] && pwa[1] == pw[1] && pwa[2] == pw[2] && pwa[3] == pw[3] &&pwa[4] == pw[4] && pwa[5] == pw[5])
            cout << "passwort korrekt!\n";
        else
            cout << "passwort falsch!\npwa=" << pwa << endl;
    }

    return 0;
}




....könnte mir vl jemand helfen diesen quellcode zu vereinfachen???

danke schon im voraus

mfg noknow
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.07.2004, 12:35 Uhr
RedEagle



Ich glaube es müsste auch so gehen: if(pwa==pw)
musste mal ausprobieren
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
20.07.2004, 12:50 Uhr
typecast
aka loddab
(Operator)


Nicht bei char* Arrays. Da musst du mit der Funktion strcmp aus dem Header string.h arbeiten (diese liefert 0 bei Gleichheit zurück):

C++:
if (!strcmp(pw, pwa))
  std::cout << "Passwort ist richtig" << std::endl;



Allerdings würde ich dir empfehlen, mit der Klasse std::string aus dem Header <string> (beachte ohne .h) zu arbeiten dann kannst du einfach eine == Vergelich machen

C++:
#include <string.h>
...
std::string pwa;
std::string pw = "hallo";
...
if (pwa == pw)
  std::cout << "Passwort richtig" << std::endl;


--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
20.07.2004, 14:04 Uhr
0xdeadbeef
Gott
(Operator)



C++:
#include <algorithm>
#include <iostream>
#include <string>

using namespace std;

int main()
{
  const string pw = "hallo";
  string pwa;

  while(true)
  {
    getline(cin, pwa);

    if(pw == pwa)
      cout << "passwort korrekt!\n";
    else
      cout << "passwort falsch!" << endl
           << "pwa=" << pwa    << endl;
    }

    return 0;
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 20.07.2004 um 14:05 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
20.07.2004, 17:11 Uhr
~noknow
Gast


hi,
danke für eure schnellen antworten und für eure hilfsbereitschaft....!!!!!
(habt mir echt weitergeholfen)

nun ist bei mir aber eine andere frage aufgekommen: wie könnte ich diese simple passwort abfrage "knacken"??

ich hab mir gedanken gemacht ein eigenes programm dafür zu machen und per "brute force" das ganze anzugehen...., nur wie greife ich mit dem anderen programm auf das eine zu?? bzw wie stelle ich mit dem einen programm die anfragen an das andere??

mfg noknow
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
20.07.2004, 17:19 Uhr
~noknow
Gast


@0xdeadbeef:

ich habe getline mit einem einfachen cin ausgetauscht weil es wollte nicht so ganz funzen also es lief nicht einwandfrei... k/A wieso, könnte mir das vl jemand erklären...?

also statt:

C++:
...
getline(cin, pwa);
...


habe ich:

C++:
...
cin >> pwa;
...


mfg noknow
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
20.07.2004, 17:52 Uhr
Pablo
Supertux
(Operator)



Zitat von typecast:
Nicht bei char* Arrays. Da musst du mit der Funktion strcmp aus dem Header string.h arbeiten (diese liefert 0 bei Gleichheit zurück):



Das klingt am Anfang komisch, weil man meint, dass 1 zurückgegeben wird, wenn etwas wahr usw, aber beim strcmp hat man 2 identische strings, wenn strcmp 0 zurückliefert. Das leigt daran, dass strcmp den lexykographischen Abstand zurückliefert. Bsp: "Man" und "Mbn" haben als Abstand 1, d.h. strcmp("Man", "Mbn") müsste 1 oder -1 zurcückliefern. Wenn 2 Inhalten übereinstimmen, dann gibt es keinen Abstand, der Abstand ist 0.

Wenn du bei char*, die Zeiger sind, == benutzt, dann vergleichst du, ob beide auf die selben Stelle zeigen und nicht, den Inhalt der Stellen, auf die die Zeiger zeigen.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!

Dieser Post wurde am 20.07.2004 um 17:52 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
20.07.2004, 21:33 Uhr
~noknow
Gast


danke nochmal...!!

aber wegen meine 2 vorherigen fragen: ist das offtopic also soll ich nen neue thread machen oder is auch so ok??

mfg noknow
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
22.07.2004, 03:16 Uhr
invalid_username



1. getline(cin,pwd) geht bei mir ..naja aber ich denke wenn man schon getline nimmt dann bitte cin.getline(pwd,sizeof(pwd));// wenn als char[] implementiert
aber da es ja um ein passWORD geht sollte cin>> dass sinvollste sein --
dann natürlich auch als string !!

2. warum denn #include <algorithm>?? ist doch nicht verwand worden ..
naja da ich neu hier bin und nicht als besserwisser wirken will -- wenn ich was falsch sehe oder ne verbesserung übersehe einfach posten **


ps kann am compiler liegen aber müsst ihr <string> einbinden ?? ich nicht ..
--
((void)*)0
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
22.07.2004, 10:07 Uhr
freshman



um von Standard mal abzuweichen:
probiert mal getch() aus conio.h aus (!!caution:no standard!!)
Zeichen einzeln einlesen und (!) auf Konsole 'unsichtbar' machen, da es sich ja um ein Paßwort handelt

C++:
for(int i=0; i<len ;i++){
  pw[i] = getch();
  cout<<"*";
}
pw[len]='\0'; //Endekennung setzen

--
freshman.say("Wer nicht an Wunder glaubt ist kein Realist!\a");
while(1)freshman.ask(sillyQuestion);
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: