printe mal data und data2
Server mit Forum verbinden
- SteveDee
- Geschlossen
- Erledigt
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 dateivon der geschwindigkeit war kein Unterschied zu bemerken ! Zwischen den Methoden
-
Wollte eigentlich nicht alles so kompliziert machen und umwerfen
Wollte eigentlich nur wissen wie ich die Werte vergleiche.
Weil mit der oben genannten Methode hat es ja nicht funktioniert.Mit freundlichen Grüßen
Steph12Edit: Den PHP Code und alles habe ich ja
Das funktioniert auch.
Bekomme das PW das in der DB steht. -
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 ladenstock 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: d6bffa9bdda9dd1f9c4edc498f2dae3a92f70321Benutze das Plugin das
zabus vorgeschlagen hat.
Ich hoffe ihr wisst was ich falsch gemacht habe.
Mit freundlichen Grüßen
Steph12PS: 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 -
breadfish.de
Hat das Thema geschlossen.