Lizenzschlüssel erstellen

Eindeutige Schlüssel erstellen ist kein Zauberwerk.

Als erstes die Funktion um den Code zu erzeugen

function create_unique_lic() {
    $string = array(0,1,2,3,4,5,6,7,8,9);
    $randkey = "";
    $count = count($string);
    for ($i=0; $i<4; $i++) {
        for ($j=0; $j<5; $j++) {
            $randkey .= $string[rand(0,($count-1))];
        }
        if($i !== 3) {
            $randkey .= '-';
        }
    }
    return $randkey;
}

der folgende Bereich ist dabei für den Inhalt zuständig

$string = array(0,1,2,3,4,5,6,7,8,9);

Das Array kann man auch mit weiteren Zeichen füllen. Oder Ganz simpel mit range()

$string = range('a', 'z');
// nur kleine buchstaben von a-z

Die erste For-Schleife definiert die Anzahl der Blöcke die dann die Lizenz bilden.

also xxxxx-xxxxx-xxxxx-xxxxx sind entsprechend 4 Blöcke

for ($i=0; $i<4; $i++) {
    /** erzeugt 4 Blöcke
    * oder
    * for ($i=0; $i<5; $i++) {
    * erzeugt 5 Blöcke **/
}

Der Schlüssel selbst wird dann in der folgenden schleife gebildet, wobei auch hier die Grösse entsprechend angepasst werden kann.

for ($j=0; $j<5; $j++) {
  $randkey .= $string[rand(0,($count-1))];
}
//rand() gibt einen Wert zwischen 0 und count von $string - 1 zurück

Extended Edition

Hier die komplette Funktion inklusive 1000 einzigartigen Keys. Dabei wird ein Array definiert, welches in der Lizenzerstellung ebenfalls geprüft wird. Wenn ein schlüssel schon drinsteht, dann wird ein neuer erzeugt.
Das ganze wird solange gemacht bis die 1000 Schlüssel voll sind.

<?php
$keyliste = array();
function create_unique_lic() {
    global $keyliste;
    $string = array(0,1,2,3,4,5,6,7,8,9);
    $randkey = "";
    $count = count($string);
    for ($i=0; $i<4; $i++) {
        for ($j=0; $j<5; $j++) {
            $randkey .= $string[rand(0,($count-1))];
        }
        if($i !== 3) {
            $randkey .= '-';
        }
    }
    if(in_array($randkey,$keyliste)) {
        $randkey = create_unique_lic();
    }
    
    return $randkey;
}
for($x = 0; $x <= 1000; $x++) {
    $keyliste[] = create_unique_lic();
}
var_dump($keyliste);
?>

Eine noch erweiterte Form läuft aktuell im Hintergrund der Seite und läd 10 Codes.

73279-85687-00645-42620
07397-19726-89007-09267
07862-30402-40070-89051
73174-87314-11107-34884
13421-50055-12930-32773
28539-27315-72824-97492
01594-52730-05859-78610
18200-79719-01061-51425
43039-91862-88008-18899
80196-24877-31135-03690

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

You may use these HTML tags and attributes

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

But, it will became readable code