MySQL MD5 Hash, nur wie?

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Okay..


    also ich habe 2 stocks hier:


    stock Register(playerid, pass[]){
    new query[256],Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    mysql_real_escape_string(Name,Name);
    mysql_real_escape_string(pass,pass);
    format(query, sizeof(query), "INSERT INTO `Accounts` (`Name`, `Passwort`) VALUES ('%s', '%s')", Name, pass);
    mysql_query(query);
    return true;
    }


    stock mysql_ReturnPasswort(Name[]){
    new query[130], Get[130];
    mysql_real_escape_string(Name, Name);
    format(query,128,"SELECT `passwort` FROM `Accounts` WHERE `Name` = '%s'",Name);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(Get);
    mysql_free_result();
    return Get;
    }


    Wie muss ich das jetzt machen, das er das Passwort 'hasht' und das man das 'richtige' pw eingibt das man auch eingeloggt wird..?



  • http://www.speedshare.org/download.php?id=CD9CA7011


    Du kannst auch diese md5 Include nehmen.


    Anwendung:
    MD5_Hash(passwort);



    stock Register(playerid, pass[]){
    new query[256],Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    mysql_real_escape_string(Name,Name);
    mysql_real_escape_string(pass,pass);
    format(query, sizeof(query), "INSERT INTO `Accounts` (`Name`, `Passwort`) VALUES ('%s', '%s')", Name, MD5_Hash(pass));
    mysql_query(query);
    return true;
    }


    stock mysql_ReturnPasswort(Name[]){
    new query[130], Get[130];
    mysql_real_escape_string(Name, Name);
    format(query,128,"SELECT `passwort` FROM `Accounts` WHERE `Name` = '%s'",Name);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(Get);
    mysql_free_result();
    return Get;
    }

  • bei einem Dialog:
    if(!strcmp(MD5_Hash(inputtext), mysql_ReturnPasswort(PlayerName[playerid]), true))
    {
    //PW ist richtig
    }


    stock Register(playerid, pass[]){
    new query[256],Name[MAX_PLAYER_NAME];
    new hashcode = MD5_Hash(pass)
    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    mysql_real_escape_string(Name,Name);
    mysql_real_escape_string(hashcode ,hashcode );
    format(query, sizeof(query), "INSERT INTO `Accounts` (`Name`, `Passwort`) VALUES ('%s', '%s')", Name, hashcode );
    mysql_query(query);
    return true;
    }
    Oder noch besser:
    da wo du ihn registrieren lässt:
    Register(playerid, MD5_Hash(inputtext))

  • Wieso benutzt du / ihr nicht einfach MySQL um das Passwort zu vergleichen ?
    Ist doch viel einfacher,ihr benutzt doch sowieso schon MySQL.


    format(query, sizeof(query), "INSERT INTO `Accounts` (`Name`, `Passwort`) VALUES ('%s', md5('%s'))", Name, hashcode );
    Zum prüfen:
    SELECT * FROM `Accounts` WHERE `Name` = '<NAME>' AND `Passwort` = md5('<EINGABE>')
    Das als Query ausführen und gucken ob ein Ergebnis vorhanden ist.Dann weiss man auch ob das Passwort richtig ist.Würde dafür keine extra MD5 Library benutzen.