Hashpass -
Antoniohl - 27.04.2015
Actually i'm trying to hash player password's the problem is sometimes it doesn't work good, i mean when trying to login it says wrong password, when player's register it works fine..
Here's my codes.
Код:
case D_REGISTER:
{
if (response)
{
if(strlen(inputtext) > 18)
{
SendInfoMessage(playerid, 0, "8", "Password must be a maximum of 18 characters.");
ShowRegisterDialog(playerid,D_REGISTER);
return 1;
}
if(IsNull(inputtext))
{
ShowRegisterDialog(playerid,D_REGISTER);
return 1;
}
new hashpass[129],PlayerFile[64], playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(PlayerFile, sizeof(PlayerFile), "Accounts/%s.ini", playername3);
new INI:PlayerAcc = INI_Open( PlayerFile );
WP_Hash(hashpass,sizeof(hashpass),inputtext);
INI_WriteString(PlayerAcc,"Password",hashpass);
INI_Close(PlayerAcc);
Dialog(playerid,D_LOGIN,DIALOG_STYLE_PASSWORD,"{00FF6E}Log in","{F0F0F0}For security reasons, confirm your password:","Confirm","Cancel");
}
else
{
Kick(playerid);
}
return 1;
}
Код:
case D_LOGIN:
{
if (response)
{
if(IsNull(inputtext))
{
ShowLoginDialog(playerid,D_INGRESO);
return 1;
}
new string2[128], hashpass[129], playername2[MAX_PLAYER_NAME];
INI_ParseFile(string2, "GetPlayerPass", .bExtra = true, .extra = playerid);
GetPVarString(playerid, "Password", hashpass, 32);
WP_Hash(hashpass,sizeof(hashpass),inputtext);
if(!strcmp(hashpass, PlayerInfo[playerid][pPassword], false))
{
GetPlayerName(playerid, playername2, sizeof(playername2));
format(string2, sizeof(string2), "Accounts/%s.ini", playername2);
INI_ParseFile(string2, "Character_Info", false, true, playerid, true, false );
format(string2, sizeof(string2), "PlayersVehicles/%s.ini", playername2);
INI_ParseFile(string2, "Vehicle_Info", false, true, playerid, true, false );
format(string2, sizeof(string2), "PlayersToys/%s.ini", playername2);
INI_ParseFile(string2, "Toys_Info", false, true, playerid, true, false );
PlayerConnected(playerid);
}
else
{
ClearChatbox(playerid);
ShowLoginDialog(playerid,D_LOGIN);
SendInfoMessage(playerid, 0, "7", "The typed password is not valid, please try again.");
gPlayerLogTries[playerid] += 1;
if(gPlayerLogTries[playerid] == 3) { Kick(playerid); }
}
}
else
{
Kick(playerid);
}
return 1;
}
PlayerConnected(playerid); >> it checks the player if he's banned , and it will spawn his info
What's wrong with my codes, please answer as soon as possible
EDIT: Uhhh lol the first time i connect with my account it works good.. when i re connect it doesn't it says wrong password
Re: Hashpass -
Antoniohl - 28.04.2015
Oh LOL nevermind i just did.. in dialog login and it works fine
Код:
new string2[128], hashpass[129], playername2[MAX_PLAYER_NAME];
WP_Hash(hashpass,sizeof(hashpass),inputtext);
printf("Is \"%s\" same as \"%s\"?", hashpass, PlayerInfo[playerid][pPassword]);
if(!strcmp(hashpass, PlayerInfo[playerid][pPassword], false))
and in the debugging first when i registered it was
Код HTML:
Is "7613293C186D851A669E1FBFB631FFCF0CC8E2850388E689BA3AFFBCB44705E021D6D593CE7C7E9A48B75068AAA02F6645F3251ABDE1C3FD0CD0A930E5220784" same as ""?
and i've reconnected and now it's
Код HTML:
Is "7613293C186D851A669E1FBFB631FFCF0CC8E2850388E689BA3AFFBCB44705E021D6D593CE7C7E9A48B75068AAA02F6645F3251ABDE1C3FD0CD0A930E5220784" same as "7613293C186D851A669E1FBFB631FFCF0CC8E2850388E689BA3AFFBCB44705E021D6D593CE7C7E9A48B75068AAA02F6645F3251ABDE1C3FD0CD0A930E5220784"?
tried multipe times it works..
Re: Hashpass -
Sithis - 28.04.2015
Good to see you have followed my advice and are now hashing your passwords. Security of player information is a very important aspect of any server.