Jump to content
  • 0

Problema WP_HASH


Andrey23.

Question

Problema intalnita (descriere):criptarea parolei
Ero(area / rile) / warning-(ul / urile):gamemode`ul cripteaza parola wp_hash dar baza de date nu o citeste daca este criptata si cand intru pe server nu ma pot conecta.
Liniile de cod / sursa / script-ul(obligatoriu):

/* - [ Cript Password ] - */

native         WP_Hash(buffer[], len, const str[]);

public MySQLCreateAccount(newplayersname[], newpassword[], playerid)
{
    new query[300],
    sqlplyname[64],
    parolacript[129],
    admininfo[128];
    mysql_real_escape_string(newplayersname, sqlplyname);
    WP_Hash(parolacript, sizeof(parolacript), newpassword);
    format(query, sizeof(query), "INSERT INTO players (Name, Password) VALUES ('%s', '%s')", sqlplyname, parolacript);
    mysql_query(query);
    Registerr[playerid] = 2;
    mysql_free_result();
    format(admininfo, sizeof(admininfo), "* New account: %s *", sqlplyname);
    ABroadCast(COLOR_LIGHTRED, admininfo, 1);
    new newplayersid = MySQLCheckAccount(newplayersname);
    if (newplayersid != 0)
    {
        return newplayersid;
    }
    return 0;
}

 

public OnPlayerLogin(playerid, password[])
{
    new hour, minute, second, year, month, day, string[256], parolacript[129], Query[512], ip_string[64];
    KillTimer(WaitingLOGIN[playerid]);
    gettime(hour, minute, second);
    getdate(year, month, day);
    GetPlayerIp(playerid, ip_string, sizeof(ip_string));
    MySQLCheckConnection();
    WP_Hash(parolacript, sizeof(parolacript), password);
    MySQLFetchAcctSingle(PlayerInfo[playerid][pSQLID], "Password", PlayerInfo[playerid][pKey]);
    if(!strcmp(PlayerInfo[playerid][pKey], parolacript, false) && strlen(parolacript) != 0)
    {
        format(Query, sizeof(Query), "SELECT * FROM players WHERE id = '%d'", PlayerInfo[playerid][pSQLID]);
        mysql_query(Query);
        mysql_store_result();
        if(mysql_num_rows())
        if(mysql_fetch_row_format(Query,"|"))
        {
            sscanf(Query, "p<|>e<is[24]s[129]iiiiiiiiiiiiiiiis[24]iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii>",PlayerInfo[playerid]);
        }
        MySQLUltLog(PlayerInfo[playerid][pSQLID], "MarriedTo", PlayerInfo[playerid][pMarriedTo]);
           mysql_store_result();
           MySQLUltLog(PlayerInfo[playerid][pSQLID], "Email", PlayerInfo[playerid][pEmail]);
           mysql_store_result();
    }
    else
    {
        gPlayerLogTries[playerid] += 1;
        format(string, sizeof(string), "- Incorrect password for this account: [{95A3FF}%s{BECBFC}].\n\n- Attempts remaining: [%d/3].\n\n- Please enter your password carefully.", GetName(playerid), gPlayerLogTries[playerid]);
        ShowPlayerDialog(playerid, 12347, DIALOG_STYLE_PASSWORD, "Login Account", string, "Login", "Exit");
        if(gPlayerLogTries[playerid] == 3) { Kick(playerid); }
        return 1;
    }
    if(PlayerInfo[playerid][pReg] == 0)
    {
        PlayerInfo[playerid][pReg] = 1;
        PlayerInfo[playerid][pInt] = 0;
        PlayerInfo[playerid][pLocal] = -1;
        PlayerInfo[playerid][pHealth] = 100;
        PlayerInfo[playerid][pTeam] = 3;
        PlayerInfo[playerid][pModel] = 74;
        new randphone = 1000000 + random(8999999);
        PlayerInfo[playerid][pPnumber] = randphone;
        PlayerInfo[playerid][pPhousekey] = -1;
        PlayerInfo[playerid][pPbiskey] = 255;
        PlayerInfo[playerid][pLocked] = 0;
        PlayerInfo[playerid][pLevel] = ServerConfig[1][sPStartLevel];
        PlayerInfo[playerid][pCash] = ServerConfig[1][sPMoneyCash];
        PlayerInfo[playerid][pAccount] = ServerConfig[1][SPBankCash];
        new var[768];
        {
            format(var, sizeof(var), "UPDATE `players` SET `Registered` = '%d',`Inte`='%d',`Local`='%d',`pHealth`='100',`Team`='%d',`Model`='%d',`PhoneNr`='%d',`House`='%d',`Bizz`='%d',`Locked`='%d',`PlayerLevel`='%d',`Money`='%d',`Bank`='%d' WHERE `Name`='%s'",
            PlayerInfo[playerid][pReg],
            PlayerInfo[playerid][pInt],
            PlayerInfo[playerid][pLocal],
            PlayerInfo[playerid][pTeam],
            PlayerInfo[playerid][pModel],
            PlayerInfo[playerid][pPnumber],
            PlayerInfo[playerid][pPhousekey],
            PlayerInfo[playerid][pPbiskey],
            PlayerInfo[playerid][pLocked],
            PlayerInfo[playerid][pLevel],
            PlayerInfo[playerid][pCash],
            PlayerInfo[playerid][pAccount],
            GetName(playerid));
            mysql_query(var);
        }
    }
    if(Registerr[playerid] == 2)
    {
        Registerr[playerid] = 0;
        format(Query, sizeof(Query), "UPDATE players SET `DateReg` = '%02d:%02d:%d %02d/%02d/%02d' WHERE `Name` = '%s'", hour, minute, second, day, month, year, GetName(playerid));
        mysql_query(Query);
    }
    if(PlayerInfo[playerid][pAllowed] == 0)
    {
        for(new i = 1; i <= maxim;i++)
        {
            if(strfind(ip_string, BanData[xIp], true) != -1)
            {
                SendClientMessage(playerid, COLOR_WHITE, "Server: {FF0000}Ai primit ban pe aceasta clasa de ip.");
                SendClientMessage(playerid, COLOR_LIGHTRED, "Pentru unban viziteaza www.skiTTer.ro");
                Kick(playerid);
                return 1;
            }
        }
    }

 

if(!strcmp(cmd, "/offchangepassword", true)) {
        if(IsPlayerConnected(playerid)) {
            if(gPlayerLogged[playerid] == 1) {
                if(IsPlayerAdmin(playerid)) {
                    tmp = strtok(cmdtext, idx);
                    if(!strlen(tmp)) {
                        if(PlayerInfo[playerid][pLimba] == 1) { SendClientMessage(playerid, COLOR_WHITE, "Comanda: /offchangepassword [ Nume Cont [ Complet ] ] [ Noua Parola ]"); }
                        else if(PlayerInfo[playerid][pLimba] == 2) { SendClientMessage(playerid, COLOR_WHITE, "Command: /offchangepassword [ Account Name [ Complet ]  [ New Password ]"); }
                         return true;
                       }
                       new tmp2[256];
                    tmp2 = strtok(cmdtext, idx);
                       if(!strlen(tmp2)) {
                        if(PlayerInfo[playerid][pLimba] == 1) { SendClientMessage(playerid, COLOR_WHITE, "Comanda: /offchangepassword [ Nume Cont [ Complet ] ] [ Noua Parola ]"); }
                        else if(PlayerInfo[playerid][pLimba] == 2) { SendClientMessage(playerid, COLOR_WHITE, "Command: /offchangepassword [ Account Name [ Complet ]  [ New Password ]"); }
                         return true;
                       }
                       new CheckAccount = MySQLCheckAccount(tmp);
                       if(CheckAccount) {
                           new parolacript[129];
                             WP_Hash(parolacript, sizeof(parolacript), tmp2);
                           new QueryUpdate_Here[255], InfoString_Here[128];
                        format(QueryUpdate_Here, sizeof(QueryUpdate_Here), "UPDATE players SET Password = '%s' WHERE Name = '%s'", parolacript, tmp);
                        mysql_query(QueryUpdate_Here);
                        if(PlayerInfo[playerid][pLimba] == 1) { format(InfoString_Here, sizeof(InfoString_Here), "AdmCmd: Parola contului %s a fost schimbata cu succes ! Noua parola este %s.", tmp, tmp2); }
                        else if(PlayerInfo[playerid][pLimba] == 2) { format(InfoString_Here, sizeof(InfoString_Here), "AdmCmd: %s account password was changed successfully ! New password is %s.", tmp, tmp2); }
                        SendClientMessage(playerid, COLOR_STAFF_INFO, InfoString_Here);
                        return true;
                       } else {
                        if(PlayerInfo[playerid][pLimba] == 1) { SendClientMessage(playerid, COLOR_ERROR_PARAMETERS, "Acest cont nu exista !"); }
                        else if(PlayerInfo[playerid][pLimba] == 2) { SendClientMessage(playerid, COLOR_ERROR_PARAMETERS, "This account does not exist !"); }
                        return true;
                    }
                } else {
                       if(PlayerInfo[playerid][pLimba] == 1) {    SendClientMessage(playerid, COLOR_ERROR_PARAMETERS, "Eroare: Nivelul tau de admin nu este suficient de mare pentru a folosi aceasta comanda."); }
                      else if(PlayerInfo[playerid][pLimba] == 2) { SendClientMessage(playerid, COLOR_ERROR_PARAMETERS, "Error: Your admin level isn't high enough to use this command."); }
                    return true;
                }
            } else {
                if(PlayerInfo[playerid][pLimba] == 1) {SendClientMessage(playerid, COLOR_ERROR_PARAMETERS, "Nu esti conectat !"); }
                else if(PlayerInfo[playerid][pLimba] == 2) {SendClientMessage(playerid, COLOR_ERROR_PARAMETERS, "You are not logged in !"); }
                return true;
            }
        }
        return false;
    } 

 

    if(!strcmp(cmd, "/changepass", true)) {
        if(IsPlayerConnected(playerid)) {
            if(gPlayerLogged[playerid] == 1) {
                new length = strlen(cmdtext);
                while ((idx < length) && (cmdtext[idx] <= ' '))
                {
                        idx++;
                }
                new offset = idx;
                new result[20];
                while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
                {
                    result[idx - offset] = cmdtext[idx];
                    idx++;
                }
                result[idx - offset] = EOS;
                for(new s = 0; s < num_words; s++)
                {
                    new pos;
                    while((pos = strfind(result,Swears,true)) != -1) for(new i = pos, j = pos + strlen(Swears); i < j; i++)
                    {
                        result = '*';
                    }
                }
                if(!strlen(result))
                {
                    SendClientMessage(playerid, COLOR_USE_COMMAND, "Command: /changepassword [ Password ]");
                    return 1;
                }
                new ok = 1;
                for(new i=0;i<strlen(result);i++)
                {
                    if(!IsALetter(result))
                    ok = 0;
                }
                if(ok == 0)
                   {
                    SendClientMessage(playerid, COLOR_USE_COMMAND, "Command: /changepassword [ Password ]");
                    return 1;
                }
                else
                {
                    new parolacript2[129],
                    adminfo[128];
                    strmid(PlayerInfo[playerid][pKey], result, 0, strlen(result), 999);
                      WP_Hash(parolacript2, sizeof(parolacript2), result);
                      new QueryUpdate_Here[255];
                    format(QueryUpdate_Here, sizeof(QueryUpdate_Here), "UPDATE players SET Password = '%s' WHERE id = '%d'", parolacript2, PlayerInfo[playerid][pSQLID]);
                    mysql_query(QueryUpdate_Here);
                    SendClientMessage(playerid, COLOR_WHITE, "Password has been changed successfuly.");
                    GetPlayerName(playerid, playername, sizeof(playername));
                    format(adminfo, sizeof(adminfo), "AdmWarning: Player %s changed password.", playername);
                    ABroadCast(COLOR_LIGHTRED, adminfo, 1);
                    return 1;
                }
            } else {
                SendClientMessage(playerid, COLOR_ERROR_PARAMETERS, "You are not logged in !");
                return 1;
            }
        }
        return false;
    }

Imagini /Video (optional):
Ati incercat sa rezolvati singur?:da am incercat am sters de peste tot wp_hash si parolacript. si ce mai era legat de cripate si dupa mi`a dat 22 de erori si m-am dat batut.

                               http://i.imgur.com/NOsIYWt.png

                     Respecta si vei fi respectat. :)

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0
  • 0

public OnPlayerRegister(playerid, password[])
{
    if(IsPlayerConnected(playerid))
    {
        MySQLCheckConnection();
        UpdateAccountNumber();
        UpdateNewestPlayer(playerid);
        new playername3[MAX_PLAYER_NAME];
        GetPlayerName(playerid, playername3, sizeof(playername3));
        new newaccountsqlid = MySQLCreateAccount(playername3, password, playerid);
        if (newaccountsqlid != 0)
        {
            new loginstring[256];
            PlayerInfo[playerid][pSQLID] = newaccountsqlid;
            strmid(PlayerInfo[playerid][pKey], password, 0, strlen(password), 33);
            format(loginstring,sizeof(loginstring),"- {BECBFC}Welcome back, {95A3FF}%s{BECBFC}.\n\n{BECBFC}- This account is registered.\n\n{BECBFC}- Please enter your account password in the box below.", playername3);
            ShowPlayerDialog(playerid,12346, DIALOG_STYLE_PASSWORD, "Account login", loginstring, "Login", "Exit");
            return 1;
        }
        else
        {
            gPlayerAccount[playerid] = 0;
             new regstring[256];
            new regname[24];
            GetPlayerName(playerid,regname,sizeof(regname));
            format(regstring,sizeof(regstring),"- {BECBFC}Welcome, {95A3FF}%s{BECBFC}.\n\n- {BECBFC}This account is not registered.\n\n- {BECBFC}Please choose a password for this account.",regname);
            ShowPlayerDialog(playerid,12345,DIALOG_STYLE_PASSWORD,"Register",regstring,"Register","Exit");
        }
    }
    return 0;
}

 

                               http://i.imgur.com/NOsIYWt.png

                     Respecta si vei fi respectat. :)

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.