2016-06-28 7 views
0

Ich versuche, eine Art von Seriennummer unter Verwendung eines Kundennamens zu generieren. Dies ist für eine PHP-Software, die ich entwickle. Aber ich habe noch nie Testsysteme und Seriengenerationen und solche Sachen gemacht.Kann ich den Kundennamen aus einer Seriennummer extrahieren?

Dies ist der Code, den ich die Seriennummern zu erzeugen, verwenden:

<?php 
// URL is = http://teionsoft.com/classified/keygen.php?token= 
    $token = @$_POST['token']; 

    if(empty($token)) 
    { 
     echo ' 
     <p>Token can not be blank or zero.</p> 
     <p> 
      <form action="keygen.php" method="post"> 
       <input type="text" name="token" id="token" placeholder="Type in your full name" /><br /><br /> 
       <input type="submit" name="submit" value="Get serial!" /> 
      </form> 
     </p>'; 
     exit; 
    } 

function serialKey() { 
    // Create a token 

    // GUID is 128-bit hex 
    $hash = strtoupper(md5($token)); 

    // Create formatted GUID 
    $guid = ''; 

    // GUID format is XXXXX-XXXXX-XXXXX-XXXXX-XXXXX for readability  
    $guid .= substr($hash, 0, 5) . 
     '-' . 
     substr($hash, 8, 5) . 
     '-' . 
     substr($hash, 12, 5) . 
     '-' . 
     substr($hash, 16, 5) . 
     '-' . 
     substr($hash, 20, 5); 

    // temporary code to test base64 codeing/decoding ; 

    $string = $guid; 
    $encoded = base64_encode($string); 
    $decoded = base64_decode($encoded); 
    echo $encoded ."<br /><br />"; 
    echo $decoded; 
} 

if(isset($_POST['submit'])) 
{ 
    serialKey(); 
} 
?> 

Wie kann ich den Namen des Kunden aus der Seriennummer extrahieren?

+0

Verwenden Sie sha256 anstelle von md5 –

+0

für eindeutige ID lesen Sie diese http://php.net/manual/es/function.uniqid.php –

+1

Sie erwähnen GUID dort, aber Sie generieren keine GUID. Überprüfen Sie https://en.wikipedia.org/wiki/Globally_unique_identifier#Algorithm – apokryfos

Antwort

1

Wenn ich Ihre Frage richtig verstanden habe, müssen Sie eine Seriennummer basierend auf dem Kundennamen generieren und später in der Lage sein, die Seriennummer zu entschlüsseln, um den Kundennamen zu erhalten.

Sie könnten den Namen in hex konvertieren, aber die Zeichenfolge würde in den meisten Fällen länger als das XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-Format, das Sie jetzt verwenden.

Wäre es nicht besser, nur die Seriennummer in der Datenbank zu speichern, so dass Sie nur überprüfen müssen, ob die Seriennummer in der gleichen Zeile wie der Kundenname ist?

+0

+1 auf diese Antwort. Es wäre besser, einen zufälligen Seriencode zu generieren, diesen zusammen mit Kundeninformationen in einer Datenbank zu speichern und dann einfach nachzuschlagen. –

+0

Es wäre nur, dass in einigen Fällen Software möglicherweise nicht mit dem Internet verbunden ist. Die Entschlüsselung der Seriennummer würde also bestätigen, dass die Seriennummer nach dem Kauf auf meiner Website generiert wurde. –

0

Die Tatsache, dass Sie $hash = strtoupper(md5($token)) haben, sollte ein Hinweis darauf sein, dass dies eine irreversible Transformation ist. Sie müssen das Original speichern, wenn Sie den Hash als Suchschlüssel verwenden möchten.

Verwandte Themen