Passwort verschlüsseln

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
  • Guten Abend,
    Ich versuche zur Zeit ein Registrierungs System zu schreiben, krieg aber den /register Befehl nicht so hin, wie ich ihn haben möchte.



    dcmd_register(playerid, params[])
    {
    new pname[MAX_PLAYER_NAME], file[64];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(file, sizeof(file),"/nxadmin/Accounts/%s.ini", pname);

    if (dini_Exists(file))
    {
    new string[128];
    format(string, sizeof(string), "*** Es existiert bereits ein Account mit dem Namen \"%s\".", pname);
    SendClientMessage(playerid, FARBE_FEHLER, string);
    }
    else if (!strlen(params))
    {
    SendClientMessage(playerid, FARBE_FEHLER, "*** Benutzung: \"/register <Dein Passwort>\"");
    }
    else if (!dini_Exists(file))
    {
    dini_Create(file);
    new IP[16];
    GetPlayerIp(playerid, IP, sizeof(IP));
    dini_Set(file, "IP", IP);
    dini_Set(file, "RegIP", IP);
    new Jahr, Monat, Tag, Datum[16];
    getdate(Jahr, Monat, Tag);
    format(Datum, sizeof(Datum), "%02d/%02d/%d", Tag, Monat, Jahr);
    dini_Set(file, "RegDatum", Datum);
    dini_Set(file, "Passwort", params);
    dini_IntSet(file, "AdminLevel", 0);
    dini_IntSet(file, "Geld", 0)
    pInfo[playerid][Eingeloggt] = true;
    }
    return 1;
    }


    Ich möchte dass das Passwort als udb hash gespeichert wird, und dass das Passwort zwischen 3 und 24 zeichen liegen muss.


    Könnte das jemand dementsprechend umbauen?


    mfg Blokk

  • Ich weiß nicht wie ich abfrage ob das Passwort richtig angegeben wurde, deshalb hatte ich es bisher so:



    dcmd_login(playerid, params[])
    {
    #pragma unused params
    new pname[MAX_PLAYER_NAME], file[64], string[128];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(file, sizeof(file), "/nxadmin/Accounts/%s.ini", pname);

    if (dini_Exists(file))
    {
    GivePlayerMoney(playerid, dini_Int(file, "Geld"));
    pInfo[playerid][Eingeloggt] = true;
    }
    else if (pInfo[playerid][Eingeloggt] == true)
    {
    SendClientMessage(playerid, FARBE_FEHLER, "*** Du bist bereits eingeloggt.");
    }
    else if (!dini_Exists(file))
    {
    format(string, sizeof(string), "*** Es wurde kein Account mit dem Namen \"%s\" in der Datenbank gefunden. Nutze \"/register <Dein Passwort>\" um dir einen zu registrieren.", pname);
    SendClientMessage(playerid, FARBE_FEHLER, string);
    }
    return 1;
    }


  • Linie 8 - 12 :


    if (dini_Exists(file))
    {
    if(strcmp(dini_Get(file,"Passwort"),MD5_Hash(params)))return SendClientMessage(playerid,0xFF0000FF,"Passwort stimmt nicht!");
    GivePlayerMoney(playerid, dini_Int(file, "Geld"));
    pInfo[playerid][Eingeloggt] = true;
    }

    Mfg. BlackFoX_UD_ alias [BFX]Explosion