You are not logged in.

muca

Praktikant

  • "muca" is male
  • "muca" started this thread

Posts: 5

Date of registration: Dec 10th 2006

1

Sunday, December 10th 2006, 2:53pm

Passwort abfrage! max 3 versuche

Hallo Liebe Informatiker

Habe wieder eine neue Aufgabe wo ich an einer Stelle nicht weiter komme. Ich habe das Programm geschrieben da muss aber noch was eingefügt werden damit wenn ich Passwort falsch eingebe dort steht das ich noch 2 Versuche habe und wenn ich wieder falsch ein gebe noch 1 Versuch und beim 3. mal wenn ich Falsch eingege das das Programm abgebrochen wird. Dazu brauche ich eure Hilfe.

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <string>
#include <conio.h>

using namespace std;

void main()

{



string pw="";
char zeichen;

cout <<"\n\n\t Geben Sie Ihr Passwort ein! <max 3 Versuche>";

while(true)
{

zeichen=getch();

if(zeichen!=13)
{
pw = pw + zeichen;
cout<<"*";

}
else break;

}

if(pw=="Entropie 48")
cout<<"\n\n\t Zugang erlaubt!" << endl << endl;

else

cout <<"\n\n\t Zugang nicht erlaubt!" << endl << endl;

}

Warui

Turner, Serveradmin & Workaholic

  • "Warui" is male

Posts: 717

Date of registration: Apr 25th 2006

Location: Südstadt

Occupation: (iter (B.Sc. Inf, 8)) \n (be-a-slave ("SRA", "Bachelor Thesis")) \n (be-a-programmer-slave ("Freelancer", "Programming"))

2

Sunday, December 10th 2006, 3:02pm

auch wenn ich die aufgabe nicht kenne, hört sich das stark nach einer for-schleife an ....
bzw. nach einer weiteren while-schleife, je nach Implementierung
Erwachsenwerden? Ich mach ja viel Scheiß mit, aber nicht jeden!

CrissCross

Erfahrener Schreiberling

  • "CrissCross" is male

Posts: 282

Date of registration: Feb 15th 2005

3

Sunday, December 10th 2006, 3:12pm

RE: Passwort abfrage! max 3 versuche

Ich würde das auch mit einer weiteren Schleife lösen, die um
die gesamte Abfrage geschrieben wird wie z.B.

while(AnzahlVersuche<3){



//Hier die Abfrage und mit jedem falschen Versuche "AnzahlVersuche" hochzählen


}



Im übrigen würde ich niemals das Passwort hartcodiert als String im Programm speichern (wenn überhaupt als MD5- oder SHA1-Hash).
Außerdem ist die Sache mit den 3 Versuchen nicht so sehr sicher: Man kann das Programm einfach neu starten und hat dann wieder 3 Versuche. Hier würde ich eher mit einem Timestamp arbeiten, der irgendwo außerhalb des Programms (verschüsselt) gespeichert wird, so dass z.B. für die nächsten 10 Minuten kein Login mehr möglich ist.
"Technology is easy - people are hard."

(John Gage - Sun Microsystems zum Thema warum IT-Projekte scheitern)

muca

Praktikant

  • "muca" is male
  • "muca" started this thread

Posts: 5

Date of registration: Dec 10th 2006

4

Sunday, December 10th 2006, 3:38pm

hmm könntest du es bei meinem programm so einbinden und den code hierhin schreiben?

Lucky

Erfahrener Schreiberling

  • "Lucky" is male

Posts: 449

Date of registration: Oct 17th 2003

Location: Dresden

Occupation: Um ein bißchen mehr Ahnung zu haben als andere

5

Monday, December 11th 2006, 9:40am

Quoted

Original von muca
hmm könntest du es bei meinem programm so einbinden und den code hierhin schreiben?


http://www.galileocomputing.de/openbook/c_von_a_bis_z/

Beim MD5 Hash einfach mal googlen, da gibt es fertige Funktionen.


Ich glaube ich schreibe im Namen aller, wenn ich jetzt sage, dass wir hier gerne bei Fragen und Problemen weiterhelfen aber den gesamten Code wird Dir hier wahrscheinlich niemand schreiben...

Viel Erfolg, Du schaffst das schon! Bei Fragen einfach wieder hier melden!
no risk no fun, no brain no pain nor gain

Currywurst mit Pommes

Erfahrener Schreiberling

Posts: 438

Date of registration: Oct 14th 2002

6

Monday, December 11th 2006, 11:54am

Ich glaube nicht, dass es bei so einem kleinen Programm auf Sicherheit ankommt. Ist ja wahrscheinlich nur eine Übungsaufgabe ?

Allerdings gehört das Kennen einer For-Schleife ja zur absoluten Grundausbildung ? Oder bist du, muca, kein Informatiker und suchst nur Rat ?

CrissCross

Erfahrener Schreiberling

  • "CrissCross" is male

Posts: 282

Date of registration: Feb 15th 2005

7

Monday, December 11th 2006, 5:12pm

Quoted

Ich glaube nicht, dass es bei so einem kleinen Programm auf Sicherheit ankommt. Ist ja wahrscheinlich nur eine Übungsaufgabe ?


Wenn es nicht auf Sicherheit ankommt, wieso dann diese Sache mit den 3 Versuchen? Ist doch schon ein Sicherheitsaspekt (Abwehr von Brute-Force Angriffen), oder? ;)

Aber im Ernst: Bei ner Passwortabfrage kommt es IMMER auf Sicherheit an und auch wenn es nur ne Übungsaufgabe ist - ist doch gut, wenn man es gleich richtig übt.
"Technology is easy - people are hard."

(John Gage - Sun Microsystems zum Thema warum IT-Projekte scheitern)

muca

Praktikant

  • "muca" is male
  • "muca" started this thread

Posts: 5

Date of registration: Dec 10th 2006

8

Monday, December 11th 2006, 5:30pm

nene bin kein informatiker. Gehe im mom auf ein IT Schule ersts eit 4 monaten

migu

free rider

  • "migu" is male

Posts: 2,643

Date of registration: Dec 11th 2001

Occupation: Developer

9

Monday, December 11th 2006, 5:36pm

Quoted

Original von CrissCross
Aber im Ernst: Bei ner Passwortabfrage kommt es IMMER auf Sicherheit an und auch wenn es nur ne Übungsaufgabe ist - ist doch gut, wenn man es gleich richtig übt.
Vielleicht sollte sich ein Anfänger lieber auf Grundlegendes wie Sprachelemente konzentrieren. Sicherheit ist doch eher etwas für Fortgeschrittene.
tar: Anlegen eines leeren Archivs wird feige verweigert.

This post has been edited 1 times, last edit by "migu" (Dec 11th 2006, 5:36pm)


muca

Praktikant

  • "muca" is male
  • "muca" started this thread

Posts: 5

Date of registration: Dec 10th 2006

10

Monday, December 11th 2006, 5:39pm

So hier die Lösung

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include <string>
#include <conio.h>

using namespace std;

void main()

{
	string benutzername;
	string passwort;
	char zeichen;
	int a=3;
	do
	{
		cout <<"\n\n\tBitte geben Sie ihren Benutzernamen ein !";
		cin >> benutzername;

		cout <<"\n\n\tGeben Sie ihr Passwort ein! Sie haben noch " << a <<" Versuche ";
		a--;
		passwort="";

		while(true)
		{

			zeichen = getch();

			cout << "*";

			if(zeichen !=13)
				passwort = passwort + zeichen;
			else break;
		}
		{

			if(passwort=="Entropie 48" && benutzername=="Chef")
			{
				cout << "\n\n\tZugang erlaubt" <<endl;
				exit(0);
			}
			else
				cout <<"\n\n\tKein Zugang"<< endl;

		}

		if(a==0)
			cout <<"\n\n\tDas Programm wird beendet, da das Passwort 3x Falsch eingegeben wurde." << endl << endl;
	}
	while(a>0);

}

st0n3d

Junior Schreiberling

  • "st0n3d" is male

Posts: 128

Date of registration: Oct 9th 2003

Location: Hildesheim

11

Monday, December 11th 2006, 11:41pm

Wenn ich mal fragen darf: Auf welcher IT-Schule bist du denn?
"Der Computer rechnet mit allem - nur nicht mit seinem Besitzer."

Dieter Hildebrandt

muca

Praktikant

  • "muca" is male
  • "muca" started this thread

Posts: 5

Date of registration: Dec 10th 2006

12

Tuesday, December 12th 2006, 2:50pm

Hi

also Ich mache grade Fach abi an einem Berufskolleg im Bereich Informations- und Telekommunikationstechnik