Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Neobavezni lik poslato Mart 21, 2016, 07:40:43 PRE PODNE

Naslov: [POMOC]oko HASSa
Poruka od: Neobavezni lik poslato Mart 21, 2016, 07:40:43 PRE PODNE
Skripta koju koristim:moja
Detaljan opis problema:Dakle ako je pass u hassu [pawn]260965141[/pawn]
Kako da napravim cmd npr.hass i onda sifra u hasu i da on odhassa u posalje mi messange? Neznam ovo u cmd napraviti
Dio skripte:[pawn]stock udb_hash(buf[]) //HASH PASS
{
    new length=strlen(buf);
    new s1 = 1;
    new s2 = 0;
    new n;
    for (n=0; n<length; n++)
    {
       s1 = (s1 + buf[n]) % 65521;
       s2 = (s2 + s1)     % 65521;
    }
    return (s2 << 16) + s1;
}

[/pawn]
Neke slike/video za lakse dobivanje pomoci(neobavezno)://
Naslov: Odg: [POMOC]oko HASSa
Poruka od: // xunder poslato Mart 21, 2016, 12:05:46 POSLE PODNE
Hash je napravljen da se ne moze decrypt, procitaj na netu, a ako hoces da ti upisuje kao string onda ga radi kao string, npr.

new string[128];
format(string, 128, "Igrac %d novac %d", GetPlayerMoney(playerid));
print(string);

A hash ti se bazira na int-u

new string;
string = udb_hash("Bla bla");
print(string);


Pa ako hoces string pw ides lijepo definisati varijablu u kojoj spremas igracev PW

enum Player{
playerPW[20] //20 je duzina maksimalna koju mozes upisati u string...
}
new PI[MAX_PLAYERS][Player];

//komanda
CMD:changepw(playerid,params[])
{
new newpw[20];
if(sscanf(params,"s[20]",newpw)) return SendClientMessage(playerid,-1,"/changepw [pw]");
if(strlen(newpw) > 20 || strlen(newpw) < 5) return SendClientMessage(playerid,-1,"*  {ff0000}Duzina od 5 do 20 karaktera");
format(PI[playerid][playerPW], 20, "%s", newpw);
new string[128];
format(string,128,"Novi pw je %s", newpw);
SendClientMessage(playerid,-1,string);

//sacuvas npr MySQL
new sacuvaj[200],igracevoime[MAX_PLAYER_NAME];
GetPlayerName(playerid,igracevoime,sizeof igracevoime);
mysql_format(Handle, sacuvaj, sizeof sacuvaj, "UPDATE `players` SET `pw` = '%s' WHERE `name` = '%s'", newpw, igracevoime);
mysql_query(Handle, sacuvaj);
return 1;
}

//provjera u login
if(!strcmp(PI[playerid][playerPW], inputtext)) {
//uspijesan login
}
else {
//neuspijesan
}
Naslov: Odg: [POMOC]oko HASSa
Poruka od: [CH]Lenon poslato Mart 21, 2016, 12:28:41 POSLE PODNE
strlen nije potreban, dovoljno je ovako:

if(newpw > 20 || newpw < 5) return SendClientMessage(playerid,-1,"*  {ff0000}Duzina od 5 do 20 karaktera");

I kod format koristi sizeof a ne da rucno upises vrijednost, jer kad mjenjas vrijednos stringa onda moras i rucno promjeniti vrijednost u drugom parametru, iz ovoga primjera:

kako si ti napisao:
new string[128];
format(string, 128,"Novi pw je %s", newpw);


Kako je lakse za koristiti:
new string[128];
format(string, sizeof(string),"Novi pw je %s", newpw);


PS. u ovom slucaju je previse da stavis 128 polja za string, smanji ih.


LP. :)
Naslov: Odg: [POMOC]oko HASSa
Poruka od: Neobavezni lik poslato Mart 21, 2016, 12:32:44 POSLE PODNE
Ne ja imam sistem koji radi imam sve ali hocu da pomocu neceg mogu videti pass igracev
Naslov: Odg: [POMOC]oko HASSa
Poruka od: [CH]Lenon poslato Mart 21, 2016, 12:33:55 POSLE PODNE
Citat: GamingNiksy poslato Mart 21, 2016, 12:32:44 POSLE PODNE
Ne ja imam sistem koji radi imam sve ali hocu da pomocu neceg mogu videti pass igracev

Ne mozes "de-hashovati" igracev pw, jedino sto mozes je da ne koristis hash.
Naslov: Odg: [POMOC]oko HASSa
Poruka od: Neobavezni lik poslato Mart 21, 2016, 12:45:56 POSLE PODNE
A kako onda to funkcionise?
Naslov: Odg: [POMOC]oko HASSa
Poruka od: Neobavezni lik poslato Mart 21, 2016, 13:23:05 POSLE PODNE
Dakle nemos to desifrirat samo tekst mozes sifrirat i usporedit je li isti?
Naslov: Odg: [POMOC]oko HASSa
Poruka od: .dofuu poslato Mart 21, 2016, 13:39:51 POSLE PODNE
Kako znam, kad hash password, poslije toga ga više ne možeš pročitati...
Naslov: Odg: [POMOC]oko HASSa
Poruka od: [CH]Lenon poslato Mart 21, 2016, 14:01:59 POSLE PODNE
Citat: GamingNiksy poslato Mart 21, 2016, 13:23:05 POSLE PODNE
Dakle nemos to desifrirat samo tekst mozes sifrirat i usporedit je li isti?

Tako je.
Naslov: Odg: [POMOC]oko HASSa
Poruka od: // xunder poslato Mart 21, 2016, 21:21:25 POSLE PODNE
Citat: Lenon poslato Mart 21, 2016, 12:28:41 POSLE PODNE
strlen nije potreban, dovoljno je ovako:

if(newpw > 20 || newpw < 5) return SendClientMessage(playerid,-1,"*  {ff0000}Duzina od 5 do 20 karaktera");

I kod format koristi sizeof a ne da rucno upises vrijednost, jer kad mjenjas vrijednos stringa onda moras i rucno promjeniti vrijednost u drugom parametru, iz ovoga primjera:

kako si ti napisao:
new string[128];
format(string, 128,"Novi pw je %s", newpw);


Kako je lakse za koristiti:
new string[128];
format(string, sizeof(string),"Novi pw je %s", newpw);


PS. u ovom slucaju je previse da stavis 128 polja za string, smanji ih.


LP. :)

Ako bude znao ovo uraditi znace i smanjiti string, a strlen uopste ne smeta i stvar je navike. Sifeof nisam pisao zato sto sam ovo na brzinu objasnio ... xD
Naslov: Odg: [POMOC]oko HASSa
Poruka od: Neobavezni lik poslato Mart 22, 2016, 15:02:44 POSLE PODNE
Hvala svima reseno! LOCK
(http://www.libertycommon.org/StudentLife/Website/img/lock-in/lock.png)