![]() |
was wie ein keygen erstellen
also ich sowas wie ein keygen erstellen
ich würde ihm keys geben wie zb. 1234-1234-1234-1234 und dann immer verschiedene in der art 2345 8568 5648 3738 3456 7933 2473 2893 4567 2214 3839 3949 5678 6454 2847 8394 also ich würde 4 editfelder haben für eine block eins wie im beispiel und im erstem editfeld wählt er mit 4 zahlen aus zb 5678 dann im 2 auch 7933 usw also nimmt er sich immer eins und mixt es zu einer vollstendigen seriennummer zusammen. im erstem editfeld soll er eins diesr nummern zeigen 2345, 3456, 4567, 5678 im zweitem 8568, 7933, ... im dritten 5648, 2473, ... im viertem 3738,... hat jemand vorschläge für so ein teil. danke im vorraus |
Re: was wie ein keygen erstellen
Für was brauchst Du das?
|
Re: was wie ein keygen erstellen
ich weiß zwar nicht genau ob es dazu passt aber ich hab mal gesehen das es unter
![]() |
Re: was wie ein keygen erstellen
Zitat:
will ich so zum eigenbedarf |
Re: was wie ein keygen erstellen
Für den Eigenbedarf? Ich dachte um deinen Lehrer zu ärgern? :gruebel: :mrgreen:
(Siehe Crossposting: ![]() |
Re: was wie ein keygen erstellen
. .
|
Re: was wie ein keygen erstellen
Ich versteh irgendwie nicht, was dein Problem ist. Das könnte unter anderem aber auch daran liegen, daß ich - wenns hochkommt - nur jedes 5. Wort verstehe, das du in deinem Post geschrieben hast. Lass dir doch mal Zeit für sowas und schreib etwas, das man auch ohne nen Doktor in Sprachwissenschaften verstehen kann...
Zu deinem Problem: Sollen diese Keys auch generiert werden, oder hast du die bereits fertig und willst sie nur zufällig anzeigen lassen? Falls ersteres: Wo ist das Problem? Zufällig (Stichwort ![]() ![]() ![]() Falls letzteres: Wird ein bestimmter Algorithmus benötigt (soll der Key also irgendwelchen Anforderungen genügen?), oder soll die Zahl rein zufällig sein? Bitte tu uns (und damit vor allem dir selbst) den Gefallen und schreib bitte deutlich, was du willst. So ein Rumgewurschtel wie im Ausgangspost kann man einfach nicht entziffern... |
Re: was wie ein keygen erstellen
Irgendwie wirst Du hier nicht verstanden...
Zugegeben. ich hab auch lange gebraucht, bis ich verstanden habe, was Du willst und in welcher Reihenfolge man die Tabelle lesen muss. Ich definiere mal: 1. User Interface mit 4 Textboxen 2. 4 Listen (je Textbox eine) mit gültigen 4-stelligen Zahlen für die Seriennummer 3. Der Benutzer wählt durch Eingabe einer einstelligen Zahl jeweils eine 4-stellige Zahl aus der Liste 4. Irgendwo wird die vollständige Seriennummer in der Form xxxx-xxxx-xxxx-xxxx angezeigt Mir stellt sich dabei die Frage: a. Warum nimmst Du keine Combo-Boxen, aus denen man die Werte auswählen kann? Dann spart man sich das Tippen. b. Warum muss man überhaupt etwas eintippen/auswählen? Dann ist ja groß nichts generiert... Ich hab das ganze mal ohne großes User-Interface mit Zufallsauswahl in Pseudo-Code verfasst:
Delphi-Quellcode:
Am Ende steht in textbox1 eine generierte Seriennummer.
// Initialisieren
List[] numbers = new List[4]; List[0] = { "2345", "3456", "4567", "5678", ...}; List[1] = { "8568", "7933", "2473", "3839", ...}; List[2] = { "5648", "2214", "3839", "2847", ...}; List[3] = { "3738", "6454", "3949", "8394", ...}; string serial = ""; // Generieren for(i=0; i<List.Length; i++) { r = Random(List[i].Length); // Eine zufällige Zahl zwischen 0 und der Länge der Liste generieren. serial += List[i][r]; serial += "-"; } // Ausgeben textbox1.Text = serial; Gruß, Thomas |
Re: was wie ein keygen erstellen
:gruebel:
:wiejetzt: Was willst du, wie kommst du an die 7933? ist das irgendeine logik, wenn ja nenne sie, wenn nein: nimm Random. aber dazu könntest du ja auch selber dann im programm wild auf den ziffernblock hauen, und der sinn einer seriennummer ist es ja schön lange davor zu sitzen -.- edit: ![]() okay, dann wie mein vorgänger schrieb. (vll ist er ja nicht battlemonster^^) |
Re: was wie ein keygen erstellen
Bei jedem Programmstart zufallst du einfach eine neue Nummer und der andere wird das nie zum Laufen bekommen, außer er deaktiviert den Vorgang :mrgreen:
|
Re: was wie ein keygen erstellen
[OT]
Zitat:
[/OT] |
Re: was wie ein keygen erstellen
Zitat:
also ich will ein programm haben das mir (lehrer auch), wenn ich ein button drücke eine belibige seriennummer zeigt. die seriennummern würde ich ihm vorher sagen aber nicht mehr im endprogramm verändern können. und dann dachte ich das er sich einfach eine nummer zusammen mixt. also ich habe 4 editfelder. jedes editfeld hat 4 verschiedene teile dieser seriennummer die nur für dieses editfeld bestimmt sind (ein teil besteht aus 4 zahlen) und er sucht eins der 4 teile aus und zeigt es. diesen vorgang macht jedes editfeld bis ich eine nummer angezeigt bekommen die aus 4 teilen (es könnte auch anders angezeigt werden) (ein teil 4 zahlen also 16 zahlen soll die nummer haben.) das müsste so aussehen das er ein teil von den 4 teilen (oder mehr) zufällig auswählt und anzeigt |
Re: was wie ein keygen erstellen
ich habe versucht es bischen besser zu erklären
|
Re: was wie ein keygen erstellen
also wenn ich meine programme zum registrieren mache, lasse ich das prog. ne seriennummer renerieren, die irgendwo gespeichert wird, und der user muss zu dieser nummer eine 2 eingeben, die sich aus der einen errechnen lässt, um das prog. frei zu schalten, hat den vorteil, das jeder user genau die id brauch, die ihm das prog sagt, und keine belibige
bestes beispiel, du lässt 4 nummern generieren (mit random) die 5 stellig sind, die einzugebene zahl ist die wurzel (oder belibig andere nichtlin. fkt)auf 5 stellen erweitert also rechner generiert die 12345 und man muss die 11110 eingeben (trunc(sqrt(x)*100)) dieser code kann auch nur sehr schwer geknackt werden, weil es sich 1: um eine nichtlineare funktion handelt, und 2: weil keiner weiß welche, und du kannst zur not einen serial mit dem Taschenrechner ausrechnen |
Re: was wie ein keygen erstellen
es gibt doch diese dinger random und randomize kann ich damit eine zufällige zahl von insgesamt 4 anzeigen.
wenn ja wie? |
Re: was wie ein keygen erstellen
randomize startet den zufalls generator,
random(10) gibt dir ne zufallszahl von 0 bis 10 aus, warscheinlichkeiten sind gleichmäßig verteilt so sieht das im text aus:
Delphi-Quellcode:
so oder so ähnlich, wie genau das funktioniert weiß ich nicht, aber vll, kann das wer anders erklären, jedenfalls funktioniert das so ganz gut
randomize;
v1:random(99999); v2:random(99999); ... randomize; |
Re: was wie ein keygen erstellen
Zitat:
Zitat:
Eine Zufallszahl von 1 bis 4 gibts dann durch folgenden Code:
Delphi-Quellcode:
Lies dir aber am besten mal die Beschreibung in der OH durch, die ist doch eigentlich recht gut erklärt...
zahl := random(4)+1;
|
Re: was wie ein keygen erstellen
ich will ihm aber 4 zahlen (oder mehr) und eine davon soll der zufällig auswehlen und anzeigen.
geht das auch? |
Re: was wie ein keygen erstellen
Zitat:
|
Re: was wie ein keygen erstellen
du kriegst im übrigen auch bei jedem mal ne ander zahl, also im o.g. beispiel ist v1<>v2 (mit sehr hoher warscheinlichkeit)
|
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 02:28 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