Seriencode ersteller erstellt nur 2stellige Nummern

  • Hey Leute.

    Ich wollte für ein Programm von mir Seriennummern erstellen lassen.

    Dazu folgendes, einfaches Script:

    Spoiler anzeigen
    [autoit]

    Global $key = ""

    [/autoit] [autoit][/autoit] [autoit]

    $ianz = InputBox("Keys", "Wie viele Keys: ")

    [/autoit] [autoit][/autoit] [autoit]

    Dim $achars[28]
    $achars[0] = "A"
    $achars[1] = "A"
    $achars[2] = "B"
    $achars[3] = "C"
    $achars[4] = "D"
    $achars[5] = "E"
    $achars[6] = "F"
    $achars[7] = "G"
    $achars[9] = "H"
    $achars[10] = "I"
    $achars[11] = "J"
    $achars[12] = "K"
    $achars[13] = "L"
    $achars[14] = "M"
    $achars[15] = "N"
    $achars[16] = "O"
    $achars[17] = "P"
    $achars[18] = "Q"
    $achars[19] = "R"
    $achars[20] = "S"
    $achars[21] = "T"
    $achars[22] = "U"
    $achars[23] = "V"
    $achars[24] = "W"
    $achars[25] = "X"
    $achars[26] = "Y"
    $achars[27] = "Z"

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 1 To $ianz
    For $x = 1 To 4
    For $a = 1 To 4
    $rnd = Random(0, 9, 1)
    If (Mod($rnd, 2) == 0) Then
    $rndchars = Random(0, 27, 1)
    $key += ""& $achars[$rndchars]
    Else
    $key += ""& $rnd
    EndIf
    Next
    $key += "-"
    Next
    Next

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0, "", $key)

    [/autoit]

    So, das Format sollte folgendes sein: XXXX-XXXX-XXXX-XXXX

    Damit der Key nicht nur aus Zahlen besteht, dachte ich mir falls bei der ersten zufallszahl eine Gerade Zahl rauskommt, wählt er einen Buchstaben. Leider kommt er hier aber auch nie an. Da stimmt was mit meiner MOD rechnung nicht.
    Ich hoffe, dass mir wer helfen kann, und desweiteren kommen immer nur 2 Zahlen raus.

    Einmal editiert, zuletzt von cinema (29. Juli 2010 um 09:33)

  • Dein Problem ist, dass anhängen an deinen String^^ das geht so nicht^^

    Probier:

    [autoit]


    For $i = 1 To $ianz
    For $x = 1 To 4
    For $a = 1 To 4
    $rnd = Random(0, 9, 1)
    If (Mod($rnd, 2) == 0) Then
    $rndchars = Random(0, 27, 1)
    $key = $key & $achars[$rndchars]
    Else
    $key = $key & $rnd
    EndIf
    Next
    If $i < $ianz Then $key = $key & "-"
    Next
    Next

    [/autoit]
  • Danke, klappt, bis auf den feinschliff, dass wen ich nur einen Key will, er keine - macht. Aber das kann ich ja selber, hate nur probleme mit den zusammenhängen.

  • also bei mir macht er auch nur ienen key was is denn dein problem dabei?


    EDIT

    Ah den fehler gefunden ..

    der kommt von mir

    nicht:

    If $i < $ianz Then $key = $key & "-"

    sondern

    If $x <> 4 Then $key = $key & "-"

    Einmal editiert, zuletzt von Kijan (29. Juli 2010 um 09:44)

  • Hallo,

    Wie prüfst du denn in deinem Programm ob die SN wirklich von dir kommt.

    oder kann es sein das tu ein Tool für eine BruteForce Attacke schreibst?

    Mit zufälligen Buchstaben? Ich denke er wollte einfach einen Serialgenerator machen, solche Leute wie EpicWorld können das gut brauchen denk ich ;)

    Omfg... Was mach ich mit nen Bruteforce? Ich will ja das Passwort was dabei noch rauskommt erleben X(


    Nein das ist für ein Programm von mir, die Seriennummer. Wie ich das Prüfe? Jeder Client bekommt seine eigene Seriennummer, und sobald er gestartet wird, wird immer gefragt ob die Seriennummer beim Server registriert ist. Ich hab damit keine illegalen absichten, und wenn, dann nicht in AutoIt

  • Was ist daran schwer? Is doch fixx gemacht?

    Das sind bei 8 Rechnern, die gleichzeitig rechnen 457019805007872Möglichkeiten / Rechner

    Wenn man von einer Durchschnittsgeschwindigkeit von 170Möglichkeiten pro Minute ausgeht, sind das 2688351794163,9529411764705882353 Minuten Rechenarbeit. Das sind in Jahren 5114824,57. Wenn wir davon ausgingen, dass die Menschen alle 120Jahre alt werden, würden erst deine Nachfahren 42623er Ebene das Ergebnis wissen. Und ich glaub, bis dahin sind wir alle tot :D