Server mit Forum verbinden

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
  • public ReturnSHA1(index,response_code,data[])
    {
    new buffer[ 128 ];
    if(response_code == 200) //Did the request succeed?
    {
    //Yes!
    format(buffer, sizeof(buffer), "Die URL gibt: %s zurück", data);
    SendClientMessage(index, 0xFFFFFFFF, buffer);
    new data2[60];
    new bedienung[50];
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(index,pName,MAX_PLAYER_NAME);
    format(bedienung,sizeof(bedienung),"username='%s'",pName);
    mysqlget("wcf1_user",bedienung,"password",data2);
    //Hier dann der Vergleich

  • stock wbb()
    {
    new string[41],string3[82],dbsalt[41];
    strmid(dbsalt,"d9cd480da6c387fdd7f1960a207705bfecbd3b32",0,41,41);//hier muss auch dein salt rein ;)
    //$hashedpw=sha1($dbsalt.sha1($dbsalt.sha1($pass)));
    sha1("daspasswort",string);
    format(string3,sizeof(string3),"%s%s",dbsalt,string);
    sha1(string3,string);
    format(string3,sizeof(string3),"%s%s",dbsalt,string);
    sha1(string3,string);
    return string;
    }


    stock wbbHTTP()
    {
    HTTP(1, HTTP_GET, "localhost/index2.php?pwd=daspw&salt=d9cd480da6c387fdd7f1960a207705bfecbd3b32", "", "MyHttpResponse");//statt daspw und salt müssen deine sachen rein ;)
    }


    public MyHttpResponse(index,response_code, data[])
    {
    // In this callback "index" would normally be called "playerid" ( if you didn't get it already :) )
    new
    buffer[ 128 ];
    //Yes!
    format(buffer, sizeof(buffer), "The URL replied: %s", data);
    return buffer;


    }



    hier einmal mit einem plugin+include link
    und hier mit dieser php datei


    von der geschwindigkeit war kein Unterschied zu bemerken ! Zwischen den Methoden

  • Wollte eigentlich nicht alles so kompliziert machen und umwerfen :D
    Wollte eigentlich nur wissen wie ich die Werte vergleiche.
    Weil mit der oben genannten Methode hat es ja nicht funktioniert.



    Mit freundlichen Grüßen
    Steph12 :)


    Edit: Den PHP Code und alles habe ich ja
    Das funktioniert auch.
    Bekomme das PW das in der DB steht.



    World of Revolution - German Reallife: www.world-of-revolution.de

    Registriert euch jetzt und seit auf die BETA-Phase gespannt!

    2 Mal editiert, zuletzt von Steph12 ()

  • Ich hab schon ewig nicht mehr mit Pawn gearbeitet, aber das hier sollte klappen:
    getSaltedHash(string[], salt[]) {
    new saltedHash[41], concat[100];

    // password hashen
    sha1(string, saltedHash);

    // gehashtes passwort und salt zusammenfügen
    format(concat, sizeof(concat), "%s%s", salt, saltedHash);

    // salt+hashed pw hashen
    sha1(concat, saltedHash);

    // salt nochmal dazupacken
    format(concat, sizeof(concat), "%s%s", salt, saltedHash);

    // und zu guter letzt nochmal hashen
    sha1(concat, saltedHash);

    return saltedHash;
    }


    dann einfach eine Abfrage à la if(getSaltedHash(eingegebens_passwort, salt_aus_der_db) == gehashtes_passwort_aus_der_db)

  • Ich hab das Passwort doch schon !!!!!
    Brauch den SHA1 Teil nicht!
    Will nur wissen wie ich das mit der IF Abfrage mache da das so wie ich das Probiert habe nicht ging.
    So hier nochmal alles Codes:


    Inputtext wird an die Website gesendet.
    if(dialogid == DIALOG_LOGIN)
    {
    if(response==0)
    {
    SendClientMessage(playerid,COLOR_RED,"Du musst dich einloggen bevor du bei uns spielen kannst.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Geben sie ihr Benutzerpasswort ein","Login","Abbrechen");
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,COLOR_RED,"Du musst ein Passwort eingeben,bevor du dich einloggen kannst!");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Geben sie ihr Benutzerpasswort ein","Login","Abbrechen");
    return 1;
    }
    else
    {
    new data[60];
    new bedienung[50];
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
    format(bedienung,sizeof(bedienung),"username='%s'",pName);
    mysqlget("wcf1_user",bedienung,"salt",data);
    format(string,sizeof(string),"www.nightlife-rp.square7.ch/gethash_stephan.php?pw=%s&dbsalt=%s",inputtext,data);
    HTTP(playerid,HTTP_GET,string,"","ReturnSHA1");
    }
    }
    return 1;
    }


    Antwort der Website+ überprüfen des Passworts ( Hier brauche ich Hilfe beim vergleichen)
    public ReturnSHA1(index,response_code,data[])
    {
    new buffer[ 128 ];
    if(response_code == 200) //Did the request succeed?
    {
    //Yes!
    format(buffer, sizeof(buffer), "Die URL gibt: %s zurück", data);
    SendClientMessage(index, 0xFFFFFFFF, buffer);
    new data2[60];
    new bedienung[50];
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(index,pName,MAX_PLAYER_NAME);
    format(bedienung,sizeof(bedienung),"username='%s'",pName);
    mysqlget("wcf1_user",bedienung,"password",data2);
    if(!strcmp(data,data2,true))
    {
    SendClientMessage(index,COLOR_GREEN,"Du hast dich erfolgreich eingeloggt.");
    LoadAccount(index);
    return 1;
    }
    else
    {
    SendClientMessage(index,COLOR_RED,"Falsches Passwort.");
    ShowPlayerDialog(index,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Geben sie ihr Benutzerpasswort ein","Login","Abbrechen");
    return 1;
    }
    }
    else
    {
    //No!
    format(buffer, sizeof(buffer), "Verbindung fehlgeschlagen! Error Code: %d", response_code);
    SendClientMessage(index, 0xFFFFFFFF, buffer);
    }
    return 1;
    }


    if(!strcmp(data,data2,true)) Das funktioniert nicht. Da steht immer : Falsches Passwort.


    So dann noch der PHP Teil

    PHP
    <?php
    
    
    $pw = $_GET['pw'];
    $dbsalt = $_GET['dbsalt'];
    $hashedpw = sha1($dbsalt.sha1($dbsalt.sha1($pw)));
    echo $hashedpw;
    ?>


    Jetzt will ich nur wissen wie ich das : if(!strcmp(data,data2,true)) zum funktionieren bekomme !


    Mit freundlichen Grüßen
    Steph12 :)

  • Ich habe es doch mal mit der Methode von zerophr34k probiert.
    Erscheint mir als sinnvoller anstatt das extern per php zumachen.
    Sorry das ich so unnett war ^^
    Leider hab ich es wieder nicht ohne Fehler geschafft
    Habe es so probiert:


    format(bedienung,sizeof(bedienung),"username='%s'",pName);
    mysqlget("wcf1_user",bedienung,"salt",data);
    mysqlget("wcf1_user",bedienung,"password",passwort);
    if(strcmp(getSaltedHash(inputtext, data),passwort,false) == 0)
    {
    Accounts laden


    stock getSaltedHash(string[], salt[])
    {
    new string3[41],gehashed[41];
    sha1(string,gehashed);
    format(string3,sizeof(string3),"%s%s",salt,gehashed);
    sha1(string3,gehashed);
    format(string3,sizeof(string3),"%s%s",salt,gehashed);
    sha1(string3,gehashed);
    return gehashed;
    }


    Leider kommt dabei nicht das Passwort raus das in der DB steht :(


    Datenbank :

    8da47270d02835b0c33d6e92bf8f9e5d4ef43101
    Nach Pawn Code: d6bffa9bdda9dd1f9c4edc498f2dae3a92f70321


    Benutze das Plugin das

    zabus vorgeschlagen hat.


    Ich hoffe ihr wisst was ich falsch gemacht habe.


    Mit freundlichen Grüßen
    Steph12



    PS: Nochmal sorry für meinen Ton und die "!!!"


    Edit: Was weggemacht was zweimal da war
    Edit2: Neue Frage , da ich das alte selber gelöst habe



    World of Revolution - German Reallife: www.world-of-revolution.de

    Registriert euch jetzt und seit auf die BETA-Phase gespannt!

    2 Mal editiert, zuletzt von Steph12 ()