Register System - Passwort abfrage + Verschlüsselung

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
  • HI,
    Ich mache gerade ein Login und Register System und komm jetzt nich weiter.Ich möchte in der Account datei das verschlüsselte passwort abspeichern.
    1.Wie verschlüssel ich das passwort?
    2.Wie mach ich die abfrage?
    Ich benutze dini
    MFG Chriss

  • benutz doch die udb_hash() funktion von den dudb.inc


    //Edit: xD BFX war schneller:D

  • die verschlüsselung geht (glaube ich) so:
    also oben hin forward Encrypt(string[]);


    und dann iwo hin in den script, am besten ganz unten:
    public Encrypt(string[])
    {
    for(new x=0; x < strlen(string); x++)
    {
    string[x] += (3^x) * (x % 15);
    if(string[x] > (0xff))
    {
    string[x] -= 256;
    }
    }
    return 1;
    }


    und am ende vom /register command das:
    strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
    Encrypt(tmppass);
    OnPlayerRegister(playerid,tmppass);


    ich glaube das das gehen müssste.


    also mein /register command sieht so aus, kannste ja kopieren :D
    if (strcmp(cmd, "/register", true) ==0 )
    {
    if(IsPlayerConnected(playerid))
    {
    if(AccountInfo[playerid][Logged] == 1)
    {
    SendClientMessage(playerid, RED, "You are already logged in.");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "/sAccounts/%s.ini", sendername);
    new File: hFile = fopen(string, io_read);
    if (hFile)
    {
    SendClientMessage(playerid, RED, "That name is already taken. Please reconnect using a different username.");
    fclose(hFile);
    return 1;
    }
    new tmppass[128];
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, ORANGE, "USAGE: /register [password]");
    return 1;
    }
    strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
    Encrypt(tmppass);
    OnPlayerRegister(playerid,tmppass);
    }
    return 1;


    und direkt unter dem onplayercommandtext nicht das vergessen:
    new cmd[128];
    new tmp[128];
    new idx;
    new giveplayerid;
    new sendername[24];
    new string[STRING];
    cmd = strtok(cmdtext,idx);


    hoffe ganz dolle ich konnte helfen, bzw. das problem lösen.
    MfG Pride

    Der verlauf des Lebens ist auch nur ein Script. Aber es kann nicht im Editor geöffnet werden :D .

  • Naja weiss nicht ob Chriss da nen Durchblick gewinnt... Is ja auch einfach aus dem SeifAdmin rauskopiert.

  • Vielen Dank,
    Doch durchsteigen tu ich da wohl ;)
    Ich werds ma versuch denk schon das es iwi klappt ich bastel eifnach bis ich schlauer bin :thumbup:
    Edit:Wenn ich deinen Register Befehl nehmen würde müsste ich erstmal nen public OnPlayerRegister erstellen etc ;) xD