![]() |
Re: was wie ein keygen erstellen
Warum wollt ihr ihm denn immer andere Lösungen aufdrängen?
Hier ist gültiger C# Code, der genau das macht was er will. Zum Laufen lassen braucht man eine Form, einen Button und eine Textbox.
Delphi-Quellcode:
Noch ein Button und noch eine Textbox, um die Seriennummer auch wieder zu überprüfen:
private void button1_Click(object sender, EventArgs e)
{ // Initialisieren string[][] nummern = new string[4][]; nummern[0] = new string[] { "2345", "3456", "4567", "5678" }; nummern[1] = new string[] { "8568", "7933", "2473", "3839" }; nummern[2] = new string[] { "5648", "2214", "3839", "2847" }; nummern[3] = new string[] { "3738", "6454", "3949", "8394" }; string serial = ""; Random generator = new Random(); // Generieren for (int i = 0; i < nummern.Length; i++) { int r = generator.Next(nummern[i].Length); serial += nummern[i][r]; if (i != nummern.Length - 1) { serial += "-"; } } // Ausgeben textBox1.Text = serial; }
Delphi-Quellcode:
Ich habe mir erlaubt, das in C# zu schreiben. Immerhin gibt es C# ja auch von Borland :-)
private void button2_Click(object sender, EventArgs e)
{ // Einlesen string serial = textBox1.Text; // Initialisieren string[][] nummern = new string[4][]; nummern[0] = new string[] { "2345", "3456", "4567", "5678" }; nummern[1] = new string[] { "8568", "7933", "2473", "3839" }; nummern[2] = new string[] { "5648", "2214", "3839", "2847" }; nummern[3] = new string[] { "3738", "6454", "3949", "8394" }; // Überprüfen bool correct = true; string[] parts = serial.Split(new char[] { '-' }); for (int i = 0; i < parts.Length; i++) { bool partFound = false; for (int j = 0; j < nummern[i].Length; j++) { if (nummern[i][j] == parts[i]) { partFound = true; } } correct &= partFound; } // Ausgeben if (correct) { textBox2.Text = "Die Seriennummer ist ok"; } else { textBox2.Text = "Die Seriennummer ist falsch"; } } Ich hab das mal absichtlich in zwei völlig unabhängige Funktionen gepackt. Immerhin soll das später jamal in zwei unterschiedlichen Programmen laufen. Gruß, Thomas |
Re: was wie ein keygen erstellen
Zitat:
Zitat:
Hier geht es nicht darum, aller Welt zu zeigen, wie schnell und toll man etwas zustandebringt, sondern darum, jemandem bei einem Problem zu helfen... :roll: |
Re: was wie ein keygen erstellen
Delphi-Quellcode:
Die erste Funktion generiert einen CD-KEY, mit der zweiten kannst du sie überprüfen.. Richtlinie war bei mir das die Quersumme der Ord(Chars) = 975 sein muss. Das ist sicher nicht so professionell aber es klappt ;)
// Generiert einen CD-KEY
function CreateKey : String; var qs : Integer; r : Integer; s : String; begin repeat qs := 0; s := ''; repeat r := random(25)+65; s := s+ Chr(r); qs := qs + r; if qs + 65 > 975 then begin qs := qs - r; delete(s,length(s),1); s := s + chr(975-qs); qs := qs + (975-qs); end; until qs = 975; until (Ord(s[Length(s)]) <= 90) and (Ord(s[Length(s)]) >= 65); Result := s; end; // Zum überprüfen ob ein CD-KEY OK ist function IsRight(S : String) : Boolean; var i, qs: integer; begin qs := 0; for i := 1 to length(s) do begin qs := qs+ord(s[i]); end; if qs = 975 then Result := true else Result := false; end; Gruß Neutral General |
Re: was wie ein keygen erstellen
meine version:
Delphi-Quellcode:
das ist wie gesagt, nur die generierung.
function ran(range:integer):integer;
begin randomize; result:=trunc(random(range)) end; function zahl:string; var v1,v2,v3,v4,v5:string; begin v1:=IntToStr((Ran(8)+1)*10000+Ran(9)*1000+Ran(9)*100+Ran(9)*10+ran(9)); v2:=IntToStr((Ran(8)+1)*10000+Ran(9)*1000+Ran(9)*100+Ran(9)*10+ran(9)); v3:=IntToStr((Ran(8)+1)*10000+Ran(9)*1000+Ran(9)*100+Ran(9)*10+ran(9)); v4:=IntToStr((Ran(8)+1)*10000+Ran(9)*1000+Ran(9)*100+Ran(9)*10+ran(9)); v5:=IntToStr((Ran(8)+1)*10000+Ran(9)*1000+Ran(9)*100+Ran(9)*10+ran(9)); result:=v1+'-'+v2+'-'+v3+'-'+v4+'-'+v5; end; die anschließende überprüfung willst du gar nicht sehen, die ist krank (warum einfach, wenn's auch kompliziert geht) aber meiner meinung nach nicht so leicht zu knacken, ein beispiel: 13452-32743-47463-57395-73984 ist die generierung 11598-31729-10767-18434-27217 ist die dazugehörige lösung |
Re: was wie ein keygen erstellen
Zitat:
Zitat:
Zudem hat er ja noch gar nicht gesagt, in welcher Sprache er das ganze umsetzen will. Vielleicht Delphi.NET? An der fehlenden OO von Delphi kann es auch nicht liegen. Mit OO hat das ganze nichts zu tun. Das hier ist funktionale Programmierung und das hab ich bei meinem C# bereits berücksichtigt. Zitat:
Zitat:
![]() Nun, ich will zusehen, dass ich zukünftig auf die Lösung hinleite und keinen Code vorgebe. :hi: , Thomas |
Re: was wie ein keygen erstellen
Zitat:
Zitat:
Und daß es um Delphi und nicht .NET geht, erkennst du daran, daß als Sprache Pascal angegeben ist :mrgreen: Zitat:
Zitat:
Also nimm meine (ich gebe zu) aggressiven Posts nicht allzu ernst, das ist einfach meine Art ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz