25.12.2012, 16:19
Encriptaзгo
Encriptaзгo й uma das coisas mais importantes (se nгo, a mais importante) de um servidor, a encriptaзгo trбs seguranзa aos servidores e privacidade aos usuбrios, eu sei que muitos dos servidores RPG que usam GF's nгo estгo encriptados, entгo eles nгo protegem a privacidade dos usuбrios, podendo saber as passwords dos mesmos e ser vitimas de ataques."Ah nгo vale a pena vei, meu server й foda e ninguйm entra lб #vidaloka"
Vocк estб errado, comeзando por nгo cumprir as Politicas de Privacidade, nas quais que dizem que vocк deverб salva guardar as passwords dos usuбrios impedindo de vocк saber a password do mesmo. Mas claro que nгo fica por aqui, se receber um ataque no seu ftp (digo isto para os usuбrios que usam salvamento .ini, MySQL й outra coisa) e o atacante for lб na scriptfiles e vir as passwords ele edita e fica com as contas para ele, muito bom nгo acha?
Mas bem para vocк fazer uma encriptaзгo no seu servidor й muito simples, vocк pode usar 3 sistemas, Whirlpool(******) , md5(******), Hash(RydeR`).
Eu pessoalmente prefiro o md5, retorna sempre uma string de 32 caracteres e enquanto Whirlpool retorna 128 o que torna maior e torna a ser chato, o Hash do Ryder` й um pouco mais complicado porque tem suporte PHP e tambйm se torna chato, Whirlpool tambйm й necessбrio usar plugin o que й ainda mais chato, por isso optei pelo md5.
Antes de tudo veja este cуdigo pois serб necessбrio para continuar.
Existe gente que diz que md5 й inseguro, sim й verdade, por exemplo:
Vamos encriptar a seguinte frase: "The quick brown fox jumps over the lazy dog"
Resultado: 9e107d9d372bb6826bd81d3542a419d6
Mas se vocк colocar essa encriptaзгo no ****** irб aparecer sites como este.
Sendo assim vocк pensa, entгo md5 й infalнvel, nem por isso, existe uma coisa chamada salt.
Salt й uma string simples que serб adicionada a nossa encriptaзгo, por exemplo:
pawn Код:
new
salt[] = "1%1cAu!g+>K53PY}", //nгo й necessбrio usar estes caracteres pode usar outros.
buf[34],
senha[24] = "HelloWorld",
result[17+25] //digamos que o valor do salt й 17 (16+1) e o valor da password serб no mбximo 25(24+1)
;
format(result,sizeof(result),"%s%s",senha,salt);
md5(buf,result);
printf("%s",buf);
Код:
B7BE4DF038F0D0E3AFC45C6262355E4E
Код:
Sua pesquisa - B7BE4DF038F0D0E3AFC45C6262355E4E - nгo encontrou nenhum documento.
"Ah mas existe sites para converter as criptografia", errado, nгo existem sites para converter, porque uma encriptaзгo й feita e й para ficar assim, nгo existe forma de converter, esses sites criam uma worldlist, ou seja, vocк faz lб um hash, por exemplo. "SA-MP" e vai aparecer "a1c7c7c356c018da73744a2a834de456" e o site vai gravar uma wordlist, assim quando vocк colocar a encriptaзгo "a1c7c7c356c018da73744a2a834de456" ele irб procurar pela worldlist e vai achar o "SA-MP". Exemplo de site: http://md5.gromweb.com
Para servidores com suporte MySQL nгo seria necessбrio fazer isto, pode usar md5 diretamente da Query, mas claro que tem de colocar o salt, mas tambйm pode usar cб fora, й indiferente.
Servidores com Acesso PHP
Para servidores que usem MySQL e PHP aconselho a lerem isto.
Fiz uma adaptaзгo do cуdigo:
PHP код:
<?php
/**
* Gera um salt aleatуrio
*
* @param int $tamanho Tamanho do salt
*
* @return string
*/
function geraSaltAleatorio($tamanho = 22) {
return substr(sha1(mt_rand()), 0, $tamanho);
}
$salt = geraSaltAleatorio();
// Senha do usuбrio, pode ter vindo do $_POST, $_GET ou outro lugar
$senha = 'olб mundo';
// Cria um hash
$hash = md5($senha . $salt);
// Encripta esse hash 1000 vezes
for ($i = 0; $i < 1000; $i++) {
$hash = md5($hash);
}
// Salvamos $hash e $salt no banco de dados
pawn Код:
mt_rand(){
new rand[11];
format(rand,sizeof(rand),"%d",random(9999999999));
return rand;
}
random_salt(buffer[34]){
buffer = MD5_Hash(mt_rand());
return 1;
}
public OnGameModeInit()
{
new salt[34],word[80],buf[34];
random_salt(salt);
format(word,sizeof(word),"%s%s",salt,"minhapassword");
md5(buf,word);
for(new i; i<1000; ++i)
md5(buf,buf);
printf("result: %s",buf);
return 1;
}
Atenзгo: Esta parte й apenas para servidores com acesso a PHP, caso o seu servidor nгo use PHP fique-se pelo menos pela parte mais simples, a nгo ser que queira fazer mesmo que ninguйm saiba a password do usuбrio, ai sim use esta forma, mas lembre-se, deverб ler o link que postei.
Agradecimentos
-BlueX - Criador do tutorial;
-Stewie` - Ensinou-me o salt;
-ThiagoBelem - Explicaзгo do salt;