Du musst natürlich auch Buff einsetzen und nicht str. Ebenfalls verwendest du weiterhin nur \n. Auch sind viele Dinge an deinem Script fraglich.
Komme mit MD5 nicht klar.
- Masterman
- 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
-
-
So passwort wird richtig gespeichert aber man kann sich mit jedem passwort einloggen -.-
public OnPlayerLogin(playerid,password[])
{
new string2[128];
new playername2[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername2, sizeof(playername2));
format(string2, sizeof(string2), "/Accounts/%s.ini", playername2);
new File: UserFile = fopen(string2, io_read);
if ( UserFile )
{
new PassData[256];
new keytmp[256], valtmp[256];
fread( UserFile , PassData , sizeof( PassData ) );
keytmp = ini_GetKey( PassData );
if( strcmp( keytmp , "Key" , true ) == 0 )
{
valtmp = ini_GetValue( PassData );
strmid(PlayerInfo[playerid][pKey], valtmp, 0, strlen(valtmp)-1, 255);
}
new Buff[129];
WP_Hash(Buff,sizeof(Buff),password);
if(strcmp(Buff, dini_Get(string2, "Key"), true)) //wenn ich vor dem strcmp ein ! mache steht da immer das passwort ist falsch
{ -
Wenn strcmp 0 zurückgibt, dann sind die Strings das selbe. Und warum machst du so rießen Strings? Ansonsten verstehe ich leider recht wenig von deinem Wirr-Warr. Poste mal bitte ordentliche Codeausschnitte und nicht Codeausschnitte, welche eine Zeile nach dem Fehler aufhören. Ich vermute mal, dass eine der Parameter bei strcmp null ist und deswegen ebenfalls 0 zurückgegeben wird. Lasse dir die Werte ausgeben und strukturiere deinen Code.
-
Ich hab nochwas geändert
aber das passwort ist falsch. Es wird falsch verschlüsselt. Hier der beweis:
SQL[20:40:47] Passwort was der spieler eingegeben hat: E0A97EDFF5933937865841A0FFFBD7458686B4BC73F2C457BAA4325BCFAA7DAC73BB28D7BCC8AB45466EAB365A825FD1B768A9792E462C4C75E33EB9B3C118F3 //hier ist "18F3" zu viel [20:40:47] - [20:40:47] Das was in pKey steht: E0A97EDFF5933937865841A0FFFBD7458686B4BC73F2C457BAA4325BCFAA7DAC73BB28D7BCC8AB45466EAB365A825FD1B768A9792E462C4C75E33EB9B3C1 [20:40:47] -
public OnPlayerLogin(playerid,password[])
{
new string2[128];
new playername2[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername2, sizeof(playername2));
format(string2, sizeof(string2), "/Accounts/%s.ini", playername2);
new File: UserFile = fopen(string2, io_read);
if ( UserFile )
{
new Buff[129];
strmid(PlayerInfo[playerid][pKey],dini_Get(string2,"Key"),0,strlen(dini_Get(string2,"Key")),255);
WP_Hash(Buff,sizeof(Buff),password);
printf("-");
printf("Passwort was der spieler eingegeben hat: %s",Buff);
printf("-");
printf("Das was in pKey steht: %s",PlayerInfo[playerid][pKey]);
printf("-");
if(strcmp(PlayerInfo[playerid][pKey],Buff, true ) == 0 )
{
new key[ 256 ] , val[ 256 ];
new Data[ 256 ];
while ( fread( UserFile , Data , sizeof( Data ) ) )
{
key = ini_GetKey( Data ); -
Und wenn du uns jetzt noch dein Enum für PlayerInfo gibst, können wir dir vielleicht helfen.
-
enum pInfo
{
pKey[132],das ist irgendwie immer anders ?
also ich hab nen anderes passwort genommen:
[20:51:15] Passwort was der spieler eingegeben hat: 9E70B032F8A3C6EB3174DA2E4D14D611EF22A1FC1E01233FD50C358C985EFD2826A20D0287CC29807FC568BC0040D4859A27008558C4C595A119990DD91ED5E2 "D5E2" Das ist zu viel :X
[20:51:15] -
[20:51:15] Das was in pKey steht: 9E70B032F8A3C6EB3174DA2E4D14D611EF22A1FC1E01233FD50C358C985EFD2826A20D0287CC29807FC568BC0040D4859A27008558C4C595A119990DD91E
[20:51:15] - -
Stringlaenge ist zu kurz.
-
Hmm ja hast recht ich bin aber irgendwie voll durcheinander in letzter zeit ich konnte das mal
Danke an alle dir mir helfen wollten / geholfen haben -
breadfish.de
Hat das Thema geschlossen.