- 0
Problema SHA256.
-
Similar Content
-
- 1 reply
- 64 views
-
- 2 answers
- 881 views
-
Problema turf
By Soryn.,
- 3 answers
- 453 views
-
- 0 replies
- 189 views
-
- 2 replies
- 354 views
-
-
Recently Browsing 0 members
- No registered users viewing this page.
Question
SUPREME.
Salut, am facut sistemul de logare, respectiv de inregistrare sa se cripteze in sha256, faza e ca este o problema cand incerc sa imi fac cont.
In mysql_error imi apare asta
La on player register am asta
public OnPlayerRegister(playerid, password[])
{
if(IsPlayerConnected(playerid))
{
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
new Str[500],y,m,d,h,mi,s;
getdate(y, m, d);
gettime(h, mi, s);
for (new i = 0; i < 16; i++) PlayerInfo[playerid][pSalt] = random(94) + 33;
SHA256_PassHash(password, PlayerInfo[playerid][pSalt], PlayerInfo[playerid][pKey], 65);
mysql_format(SQL,Str,sizeof(Str),"INSERT INTO `users` (`name`,`password`,`RegisterDate`,`salt`) VALUES ('%s','%s','%d-%d-%d %d:%d:%d','%s')",playername3,PlayerInfo[playerid][pKey],y,m,d,h,mi,s,PlayerInfo[playerid][pSalt]);
mysql_tquery(SQL,Str,"","");
strmid(PlayerInfo[playerid][pKey], password, 0, strlen(password), 255);
PlayerInfo[playerid][pCash] = GetPlayerCash(playerid);
La on player login am asta
public OnPlayerLogin(playerid,password[])
{
new playername2[MAX_PLAYER_NAME],playerip[16];
GetPlayerName(playerid, playername2, sizeof(playername2));
GetPlayerIp(playerid,playerip,sizeof(playerip));
if(NumIp(playerip, playerid) >= 3 && !IsBotOnIP(playerip))
{
SendClientMessage(playerid, COLOR_LIGHTRED, "There are already 2 players connected with same IP.");
KickEx(playerid);
return 1;
}
new qstr[256];
new hashed_pass[65];
SHA256_PassHash(password, PlayerInfo[playerid][pSalt], hashed_pass, 65);
format(qstr,sizeof(qstr),"SELECT * FROM users WHERE `name`='%s' AND `password`='%s'",playername2,hashed_pass);
new Cache: pass = mysql_query(SQL,qstr);
if(cache_get_row_count() > 0)
{
cache_get_field_content(0, "password", PlayerInfo[playerid][pKey], SQL, 130);
cache_get_field_content(0, "name", PlayerInfo[playerid][pNormalName], SQL, 130);
cache_get_field_content(0, "Salt", PlayerInfo[playerid][pSalt], SQL, 17);
La on player connect am asta
new Cache:csalt,squery[128];
mysql_format(SQL, squery, sizeof(squery), "SELECT `Salt` FROM `users` WHERE `name` = '%s'", GetName(playerid));
csalt = mysql_query(SQL, squery,true);
if(cache_num_rows() > 0)
{
cache_get_field_content(0, "Salt", PlayerInfo[playerid][pSalt], SQL,17);
}
cache_delete(csalt, SQL);
Si la " if(dialogid == DIALOG_LOGIN2 || dialogid == DIALOG_LOGIN3)" am asta
if(dialogid == DIALOG_LOGIN2 || dialogid == DIALOG_LOGIN3)
{
if(response)
{
if(strlen(inputtext))
{
new hash[129];
SHA256_PassHash(inputtext, PlayerInfo[playerid][pSalt], hash, 64);
if(!strcmp(hash, PlayerInfo[playerid][pKey]))
OnPlayerLogin(playerid,hash);
}
else
{
new stringyy[320];
gPlayerLogTries[playerid] -= 1;
if(gPlayerLogTries[playerid] == 1 || gPlayerLogTries[playerid] == 0)
{
format(stringyy,sizeof(stringyy),"Incorrect password. You have %d remaining login attempts left.", gPlayerLogTries[playerid]);
SendClientMessage(playerid, COLOR_RED2, stringyy);
}
ShowPlayerDialog(playerid,DIALOG_LOGIN2,DIALOG_STYLE_PASSWORD,"SERVER: Login","Welcome to the GTA-SAMP RPG Server.\n\nPlease enter your password below!","Login","Cancel");
if(gPlayerLogTries[playerid] == -1)
{
new stringkick[256],loginname[30];
GetPlayerName(playerid, loginname, sizeof(loginname));
format(stringkick, sizeof(stringkick), "AdmWarn: {FFFFFF}%s has been kicked for entering the wrong password 2 times.",loginname);
ABroadCast(COLOR_RED2,stringkick,1);
SendClientMessage(playerid, COLOR_RED2, "You have used all available login attempts.");
KickEx(playerid);
}
}
}
else return KickEx(playerid);
}[/spoier]
Link to comment
Share on other sites
2 answers to this question
Recommended Posts