Lizenzsystem mit PHP - Verschlüsseln & Entschlüsseln?

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von datsspeed.

    Lizenzsystem mit PHP - Verschlüsseln & Entschlüsseln?

    Hallo,

    ich wollte ein kleines Lizenzsystem zu Testzwecken erstellen, hänge nun aber beim Ver- bzw. Entschlüsseln der Anfrage/Antwort.
    Hier mal die Loginfunktion (ist ziemlich simpel gehalten, sprich HWID-Vergleich usw. habe ich jetzt mal rausgenommen zur besseren Übersicht):

    login.php

    PHP-Quellcode

    1. <?php
    2. require_once('config.php');
    3. if(isset($_GET['username']) AND isset($_GET['password']))
    4. {
    5. $username = mysql_real_escape_string($_GET['username']);
    6. $password = mysql_real_escape_string($_GET['password']);
    7. $h_password = hash('sha256', $password);
    8. $query = "SELECT username, password FROM users WHERE username = '$username' AND password = '$h_password' LIMIT 1";
    9. $result = mysql_query($query) or die(mysql_error());
    10. $count = mysql_num_rows($result);
    11. if($count == 1)
    12. {
    13. $id = "SELECT id FROM users WHERE username = '$username'";
    14. $getid = mysql_query($id) or die(mysql_error());
    15. $row = mysql_fetch_array($getid);
    16. echo $row['id'];
    17. }
    18. }
    19. ?>


    Login-Funktion

    VB.NET-Quellcode

    1. Public Function Login(username As String, password As String) As Integer
    2. With New StringBuilder
    3. .Append("username=" & username)
    4. .Append("&password=" & password)
    5. Dim result As Integer = GetResponse("login.php", .ToString())
    6. Select Case result
    7. Case -1
    8. Return -1 'Login fehlgeschlagen
    9. Case Else
    10. AccountID = result 'Login erfolgreich, ID des Accounts speichern (um es später im Programm anzuzeigen o.ä.)
    11. Return 1
    12. End Select
    13. End With
    14. End Function


    Login ausführen

    VB.NET-Quellcode

    1. Select Case Login("meinUsername", "meinPasswort")
    2. Case 1
    3. MessageBox.Show("Login erfolgreich, AccountID: " & AccountID)
    4. Case Else
    5. MessageBox.Show("Login fehlgeschlagen.")
    6. End Select


    Nun könnte man ja aber die Verbindung meines Programms auf eine eigene login.php umleiten und jedesmal "1" ausgeben, was zu einem erfolgreichen Login führen würde. Wollte hier nun fragen, ob mir jemand ein kleines Beispiel zeigen könnte, wie ich die Antwort in der login.php verschlüsseln könnte und danach in meinem Programm wieder entschlüsseln, das würde die Sache ja ein wenig schwieriger machen für andere..

    Hoffe, dass mir da jemand helfen könnte.
    ich empfehle dir mysqllib von dodo und mach in dein programm eine checksunmmen prüfung rein das falls dein programm abgeändert wird = andere php files angegeben werden das da tote hoße ist und des programm sich schließt
    Habe mal nach Checksum gegoogelt, aber versteh das irgendwie nicht so ganz.
    Auf dieser Seite z.B. vbarchiv.net/tipps/tipp_1589-crc32-checksumme.html wird ganz unten gezeigt, wie man die Summe eines Strings berechnet oder 2 Dateien vergleicht, aber wie genau soll ich das nun in meinem Fall anwenden? Hab mich mit sowas noch nie beschäftigt und kenne mich da nicht wirklich aus..ist sowas denn überhaupt besser als einfach eine verschlüsselte Antwort vom Server an mein Programm zu senden und diese dann wieder zu entschlüsseln?
    du kannst deine eXe ja mittels crccheck auslesen ....und musst dann halt nur der datei die checksumme iwie geben das es ihr schmeckt z.b. indem du der datei verteilt über den ganzen code (mit winhex z.b.) deine crc checksumme einträgst und einliest beim vergleich ...

    lg


    @erfinderdesrades

    weil es eine fertige lib ist und den weg vereinfacht + sicherer macht, natürlich kann er sowas ind er art auch selber schreiben. nur warum das rad erfinden wenn das rad schon existiert ;)

    lg