WinFuture-Forum.de: Keys Auslesen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Keys Auslesen


#1 Mitglied ist offline   namronia 

  • Gruppe: aktive Mitglieder
  • Beiträge: 630
  • Beigetreten: 09. September 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Hier

geschrieben 15. März 2009 - 18:14

Ich hab mich in der letzten Zeit wirklich mal hingesetzt und einfach drauflosprogrammiert.

Raus kam ein Keygen, der einen komplexen Key generiert, und ein Programm, das überprüft, ob der Key "legal" ist.

(Keine Angst, der Keygen ist nichts illegales :wink:, der generiert meinen eigenen Key :D).

Hier ist der Keygen:

#include <cstdlib>
#include <ctime>
#include <iostream>
#include <time.h>
#include <fstream.h>

using namespace std;

const char *FILENAME = "keys.txt";
int main()
{
	cout << "Bitte Warten, waehrend der Schluessel generiert wird!\n\n\n";
	start:
	int z1, mz1, z2, mz2, z3, mz3, mq, mqz, weiter;

	srand(time(NULL));  //intialisiert den zufallszahlengenerator von c++
	z1 = rand() % 9999; //erstellt eine zufallszahl zwischen 0 und 181
	mz1 = z1 % 42; //erstellt den key mz1 und teilt ihn mit rest durch 2
	if(mz1==29) //wenn der rest von mz1 "1" ist, gehts weiter!
		goto zweitezahl; //also wenn die zufallszahl durch 2 geteilt einen rest von 1 hat, gehts nach "zweitezahl"
	else
		goto start;

	zweitezahl:
	srand(time(NULL));
	z2 = rand() % 19999;
	mz2 = z2 % 17;
	if(mz2==5 and z2!=z1)
		goto drittezahl;
	else
		goto zweitezahl;

	drittezahl:
	srand(time(NULL));
	z3 = rand() % 29999;
	mz3 = z3 % 11;
	if(mz3==10 and z3!=z1 and z3!=z2)
		goto letztezahl;
	else
		goto drittezahl;

	letztezahl:
	mq = z1 + z2 + z3;  //rechnet alle zahlen zusammen und fasst sie im wert mq zusammen

	buchstabe:
	int a, b, c, d, e;
	char text1, text2, text3, text4, text5;

	srand(time(NULL));
	a = rand() % 15;
	a = a + 65;
	text1 = (char)a;

	b = rand() % 15;
	b = b + 65;
	text2 = (char)b;

	c = rand() % 15;
	c = c + 65;
	text3 = (char)c;

	d = rand() % 15;
	d = d + 65;
	text4 = (char)d;

	e = rand() % 15;
	e = e + 65;
	text5 = (char)e;

	int ges = a + b + c + d + e;
	goto auswahl;

	auswahl: //wenn alle zahlen stimmen, werden sie hier ausgegeben:
	cout << "Der Key lautet: " << z1 << "-" << z2 << "-" << z3 << "-" << mq << "-" << text1 << text2 << text3 << text4 << text5 << "-" << ges << "\n\n\a"
		 << "Moechten sie einen neuen Key erstellen (1 oder 0)? ";
	ofstream f("key.txt");
	f << z1 << "-" << z2 << "-" << z3 << "-" << mq << "-" << text1 << text2 << text3 << text4 << text5 << "-" << ges << "\n";
	f.close();

	cin >> weiter;

	if(weiter==1)
		goto start;
	else
	{
		exit(1);
		return(1);
	}
}

Hier ist der "Reader":
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <stdlib.h>

using namespace std;

int main()
{
	start:
	int eingabe1, eingabe2, eingabe3, eingabe4, eingabe5, qz, qa, mea, meb, mec, med, me0, allerg, gestext, mebuch;
	char b1, b2, b3, b4, b5, text1, text2, text3, text4, text5;
	printf("Bitte die erste Zahlenreihe eingeben: ");
	cin >> eingabe1;
	system("cls");
	printf("Bitte die zweite Zahlenreihe eingeben: ");
	cin >> eingabe2;
	system("cls");
	printf("Bitte die dritte Zahlenreihe eingeben: ");
	cin >> eingabe3;
	system("cls");
	printf("Bitte die vierte Zahlenreihe eingeben: ");
	cin >> eingabe4;
	system("cls");
	printf("Bitte den ersten Buchstaben eingeben: ");
	cin >> b1;
	system("cls");
	printf("Bitte den zweiten Buchstaben eingeben: ");
	cin >> b2;
	system("cls");
	printf("Bitte den dritten Buchstaben eingeben: ");
	cin >> b3;
	system("cls");
	printf("Bitte den vierten Buchstaben eingeben: ");
	cin >> b4;
	system("cls");
	printf("Bitte den vierten Buchstaben eingeben: ");
	cin >> b5;
	system("cls");
	printf("Bitte die letzten Zahlen eingeben: ");
	cin >> eingabe5;
	system("cls");

	text1 = (int)b1;
	text2 = (int)b2;
	text3 = (int)b3;
	text4 = (int)b4;
	text5 = (int)b5;
	gestext = text1 + text2 + text3 + text4 + text5;

	if(gestext<=400)
	me0 = 1;

	if(gestext==eingabe5)
	mebuch = 1;

	system("cls");
	mea = eingabe1 % 42;  // teilt die "eingabe1" durch 2 und lässt den rest
	meb = eingabe2 % 17;  // teilt die "eingabe2" durch 7 und lässt den rest
	mec = eingabe3 % 11;  // teilt die "eingabe3" durch 9 und lässt den rest
	qz = eingabe1 + eingabe2 + eingabe3; //rechnet alle "eingabe"-werte bis auf den letzten zusammen und fasst sie in den wert qz
	qa = qz - eingabe2 - eingabe3; //nimmt qz und zieht eingabe2 und eingabe3 ab, wenn eingabe1 übrig bleibt, sind die letzten zahlen korrekt
	if(eingabe1<=9999) //meine vorgabe war eine zufallszahl von 1-9999, hier überprüft er, ob die eingabe1 weniger als 181 ist
	{
		if(mea==29) //wenn sies ist, wird mea der werd 1 gegeben
		{
			mea = 1;
		}
	}
	if(eingabe2 <= 19999 and eingabe2!=eingabe1) //siehe eingabe1 if dingsda
	{
		if(meb==5)
		{
			meb = 1;
		}
	}
	if(eingabe3 <= 29999 and eingabe3!=eingabe1 and eingabe3!=eingabe2)
	{
		if(mec==10)
		{
			mec = 1;
		}
	}
	if(qa==eingabe1) //überprüft, ob die letzte zahl korrekt ist
	{
		med = 1;
	}

	allerg = mea + meb + mec + med + me0 + mebuch; //mea, meb, mec, me0 und med werden zusammengerechnet, wenn jeder keyteil richtig war, ist das ergebniss 5
	if(allerg==6)
	{
		printf("Der Key stimmt!\n\n\a");
		goto start;
	}
	else
	{
		printf("Der Key stimmt nicht, bitte den Key erneut eingeben!\n\n\a\a\a\a");
		goto start;
		return(0);
	}
}


Der Keygen schreibt jetzt einen Key, z.B. 2003-2045-2078-6126-INFLL-373 genau so in eine Datei, wie kann ich den Reader jetzt diese Datei öffnen und auslesen lassen? Das wäre so viel angenehmer, als jedes mal den langen Key eingeben zu müssen.

Und bitte nicht über meinen schlechten Programmierstil meckern, ich weiß man könnte das alles besser lösen und dass der Keygen ziemlich lange braucht, aber das ist mein erstes richtiges Programm ;)
Lecker...


bananencremeschmalz mit zwiebelgurkensouce auf frischen kräutergebratenem :D
0

Anzeige



#2 Mitglied ist offline   skelle 

  • Gruppe: aktive Mitglieder
  • Beiträge: 793
  • Beigetreten: 15. Juli 04
  • Reputation: 0

geschrieben 15. März 2009 - 19:04

also nach 2 sec google
#include <iostream>
#include <fstream>

using namespace std;

int main(int argc, char *argv[])
{
	char	 filename[128];
	ifstream file;
	char	 zeile[1024];

	// Dateinamen einlesen
	cout << "Dateinamen eingeben: " << flush;
	cin.getline(filename, 127);

	// Datei öffnen
	file.open(filename, ios::in);

	if (file.good())
	{
		// Wenn die Datei geoeffnet werden konnte...

		// An den Anfang der Datei springen
		file.seekg(0L, ios::beg);

		while (! file.eof())
		{
			// Die Datei zeilenweise auslesen
			file.getline(zeile, 1024);
			cout << zeile << endl;
		}
	}
	else
	{
		// Wenn die Datei nicht geoeffnet werden konnte,
		// aus welchen Gruenden auch immer...
		cout << "Datei nicht gefunden." << endl;
	}

	return 0;
}


und achja

bitte goto ganz fix entfernen das sollte man NIE aber wirklich NIEMALS verwenden :wink:
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0