Einzelnen Beitrag anzeigen

wellilein

Registriert seit: 15. Sep 2006
Ort: 78112 St. Georgen
7 Beiträge
 
#21

Re: was wie ein keygen erstellen

  Alt 21. Sep 2006, 19:54
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:
        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;
        }
Noch ein Button und noch eine Textbox, um die Seriennummer auch wieder zu überprüfen:
Delphi-Quellcode:
        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 habe mir erlaubt, das in C# zu schreiben. Immerhin gibt es C# ja auch von Borland
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
Thomas W.
  Mit Zitat antworten Zitat