[Ajuda] Como encryptar as senhas?
#1

Queria saber como encryptar e qual a melhor forma (mais protege) minhas senhas do meu servidor.

Tava pensando em criar a minha prуpria trocando as letras, mas pesquisando vi que ficaria fбcil de pegar e dei uma olhada sobre cryptografia e tem varios tipos que sгo muito dificil de reverter.

Qual vocкs usam no SAMP? Como passar o meu sistema de login e registro (sу a parte Senha) pra crytografado, sу pra eu ter uma base pra usar em outras coisas?
Registro / Login
Код:
	if(dialogid == DIALOG_REGISTER)
	{
		if(!response) return Kick(playerid);
		if(response)
		{
			if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Please enter a valid password!", "Please enter a valid registration password\nTo continue press Register\n\nOxiRegister 1.0\n", "Register", "Quit");
			else
			{
				GetPlayerIp(playerid, ip, sizeof(ip));
				format(query, sizeof(query), "INSERT INTO `accounts` (`Username`, `Senha`, `IP`) VALUES ('%s', '%s', '%s')", GetName(playerid), inputtext, ip);
				mysql_query(ConnectMYSQL,query);
				pInfo[playerid][Registered] = true;
				pInfo[playerid][LoggedIn] = true;
				Logado[playerid] = 1;
				tutorial[playerid] = -1;
				SetPlayerHealthEx(playerid, 100);

				pInfo[playerid][UserID] = cache_get_field_content_int(0, "UserID");
				OnPlayerLogin(playerid);
				//int_dest[0] = pInfo[playerid][UserID] = cache_get_field_content_int(0, "UserID");
			}
		}
		return 1;
	}
	if(dialogid == DIALOG_LOGIN)
	{
		if(!response) return Kick(playerid);
		if(response)
		{
			if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Please enter a valid password!", "Please enter your valid logging in password\nTo continue press log-in", "Log-in", "Quit");
			else
			{
				mysql_format(ConnectMYSQL, query, sizeof(query), "SELECT * FROM accounts WHERE Senha = '%e' LIMIT 0,1", inputtext);
				mysql_pquery(ConnectMYSQL, query, "OnLogin", "d", playerid);
			}
		}
		return 1;
	}
Reply
#2

Agora й nativo e tudo;

https://sampwiki.blast.hk/wiki/SHA256_PassHash
Reply
#3

Nunca crie a sua prуpria criptografia a nгo ser que seja um especialista em seguranзa/criptografia. Algoritmos de hashing como por exemplo SHA-256, Whirlpool e etc existem e jб tiveram a sua seguranзa avaliada. Como nгo somos criptуgrafos, a probabilidade de cometer algum erro de lуgica (em termos de seguranзa) й muito maior. Eu pessoalmente uso Whirlpool (via Plugin), mas tambйm tem o SHA-256 como o user acima disse
Reply
#4

tinha atй me esquecido disso! bem lembrado, como eu faзo pra usar isso em senha? Tipo no cуdigo dele como exemplo?
Reply
#5

Um exemplo para vocкs:

PHP код:
#define HASH_SENHA  "AEOAUEABABEAEAEOUAEIX" 
Registro:
PHP код:
SHA256_PassHash(inputtextHASH_SENHAPlayerInfo[playerid][pSenha], 64); 
Login:
PHP код:
Senha[64];
SHA256_PassHash(inputtext,HASH_SENHA,Senha,64); 
Creditos: Nick_
Reply
#6

Quote:
Originally Posted by pedrotvr
Посмотреть сообщение
tinha atй me esquecido disso! bem lembrado, como eu faзo pra usar isso em senha? Tipo no cуdigo dele como exemplo?
Na prуpria Wiki tem o exemplo
Reply
#7

Quote:
Originally Posted by GustavoSouza
Посмотреть сообщение
Um exemplo para vocкs:

PHP код:
#define HASH_SENHA  "AEOAUEABABEAEAEOUAEIX" 
Registro:
PHP код:
SHA256_PassHash(inputtextHASH_SENHAPlayerInfo[playerid][pSenha], 64); 
Login:
PHP код:
Senha[64];
SHA256_PassHash(inputtext,HASH_SENHA,Senha,64); 
Creditos: Nick_
+REP brother

Fiz certinho? O que й essa define?
Код:
#define HASH_SENHA  "AEOAUEABABEAEAEOUAEIX"  

	if(dialogid == DIALOG_REGISTER)
	{
		if(!response) return Kick(playerid);
		if(response)
		{
			if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Please enter a valid password!", "Please enter a valid registration password\nTo continue press Register\n\nOxiRegister 1.0\n", "Register", "Quit");
			else
			{
				new senhaecrytada;
				SHA256_PassHash(inputtext, HASH_SENHA, senhaecrytada, 64);  
				
				GetPlayerIp(playerid, ip, sizeof(ip));
				format(query, sizeof(query), "INSERT INTO `accounts` (`Username`, `Senha`, `IP`) VALUES ('%s', '%s', '%s')", GetName(playerid), senhaecrytada, ip);
				mysql_query(ConnectMYSQL,query);
				pInfo[playerid][Registered] = true;
				pInfo[playerid][LoggedIn] = true;
				Logado[playerid] = 1;
				tutorial[playerid] = -1;
				SetPlayerHealthEx(playerid, 100);

				pInfo[playerid][UserID] = cache_get_field_content_int(0, "UserID");
				OnPlayerLogin(playerid);
				//int_dest[0] = pInfo[playerid][UserID] = cache_get_field_content_int(0, "UserID");
			}
		}
		return 1;
	}
	if(dialogid == DIALOG_LOGIN)
	{
		if(!response) return Kick(playerid);
		if(response)
		{
			if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Please enter a valid password!", "Please enter your valid logging in password\nTo continue press log-in", "Log-in", "Quit");
			else
			{
				Senha[64];
				SHA256_PassHash(inputtext,HASH_SENHA,Senha,64);
				
				mysql_format(ConnectMYSQL, query, sizeof(query), "SELECT * FROM accounts WHERE Senha = '%e' LIMIT 0,1", Senha);
				mysql_pquery(ConnectMYSQL, query, "OnLogin", "d", playerid);
			}
		}
		return 1;
	}
Reply
#8

A define ali se nгo me engano a senha do player serб trocada por aquilo..

PHP код:
enum pInfo
{
     
pSenha[128],
}
new 
PlayerInfo[MAX_PLAYERS][pInfo];
#define HASH_SENHA  "AEOAUEABABEAEAEOUAEIX" // Coloque aqui oq serб trocado no lugar da senha..
    
if(dialogid == DIALOG_REGISTER)
    {
        if(!
response) return Kick(playerid);
        if(
response)
        {
            if(!
strlen(inputtext)) return ShowPlayerDialog(playeridDIALOG_REGISTERDIALOG_STYLE_INPUT"Please enter a valid password!""Please enter a valid registration password\nTo continue press Register\n\nOxiRegister 1.0\n""Register""Quit");
            else
            {
                
SHA256_PassHash(inputtextHASH_SENHAPlayerInfo[playerid][pSenha], 64);
                
GetPlayerIp(playeridipsizeof(ip));
                
format(querysizeof(query), "INSERT INTO `accounts` (`Username`, `Senha`, `IP`) VALUES ('%s', '%s', '%s')"GetName(playerid), PlayerInfo[playerid][pSenha], ip);
                
mysql_query(ConnectMYSQL,query);
                
pInfo[playerid][Registered] = true;
                
pInfo[playerid][LoggedIn] = true;
                
Logado[playerid] = 1;
                
tutorial[playerid] = -1;
                
SetPlayerHealthEx(playerid100);
                
pInfo[playerid][UserID] = cache_get_field_content_int(0"UserID");
                
OnPlayerLogin(playerid);
            }
        }
        return 
1;
    }
    if(
dialogid == DIALOG_LOGIN)
    {
        if(!
response) return Kick(playerid);
        if(
response)
        {
            if(!
strlen(inputtext)) return ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"Please enter a valid password!""Please enter your valid logging in password\nTo continue press log-in""Log-in""Quit");
            else
            {
                
Senha[64];
                
SHA256_PassHash(inputtext,HASH_SENHA,Senha,64);
                
mysql_format(ConnectMYSQLquerysizeof(query), "SELECT * FROM accounts WHERE Senha = '%e' LIMIT 0,1"Senha);
                
mysql_pquery(ConnectMYSQLquery"OnLogin""d"playerid);
            }
        }
        return 
1;
    } 
Reply
#9

Quote:
Originally Posted by GustavoSouza
Посмотреть сообщение
A define ali se nгo me engano a senha do player serб trocada por aquilo..

PHP код:
enum pInfo
{
     
pSenha[128],
}
new 
PlayerInfo[MAX_PLAYERS][pInfo];
#define HASH_SENHA  "AEOAUEABABEAEAEOUAEIX" // Coloque aqui oq serб trocado no lugar da senha..
    
if(dialogid == DIALOG_REGISTER)
    {
        if(!
response) return Kick(playerid);
        if(
response)
        {
            if(!
strlen(inputtext)) return ShowPlayerDialog(playeridDIALOG_REGISTERDIALOG_STYLE_INPUT"Please enter a valid password!""Please enter a valid registration password\nTo continue press Register\n\nOxiRegister 1.0\n""Register""Quit");
            else
            {
                
SHA256_PassHash(inputtextHASH_SENHAPlayerInfo[playerid][pSenha], 64);
                
GetPlayerIp(playeridipsizeof(ip));
                
format(querysizeof(query), "INSERT INTO `accounts` (`Username`, `Senha`, `IP`) VALUES ('%s', '%s', '%s')"GetName(playerid), PlayerInfo[playerid][pSenha], ip);
                
mysql_query(ConnectMYSQL,query);
                
pInfo[playerid][Registered] = true;
                
pInfo[playerid][LoggedIn] = true;
                
Logado[playerid] = 1;
                
tutorial[playerid] = -1;
                
SetPlayerHealthEx(playerid100);
                
pInfo[playerid][UserID] = cache_get_field_content_int(0"UserID");
                
OnPlayerLogin(playerid);
            }
        }
        return 
1;
    }
    if(
dialogid == DIALOG_LOGIN)
    {
        if(!
response) return Kick(playerid);
        if(
response)
        {
            if(!
strlen(inputtext)) return ShowPlayerDialog(playeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"Please enter a valid password!""Please enter your valid logging in password\nTo continue press log-in""Log-in""Quit");
            else
            {
                
Senha[64];
                
SHA256_PassHash(inputtext,HASH_SENHA,Senha,64);
                
mysql_format(ConnectMYSQLquerysizeof(query), "SELECT * FROM accounts WHERE Senha = '%e' LIMIT 0,1"Senha);
                
mysql_pquery(ConnectMYSQLquery"OnLogin""d"playerid);
            }
        }
        return 
1;
    } 
+rep mano

Aquilo ali entгo й oq vai aparecer qnd eu olhar no phpmyadmin as senhas?

Se for isso existe algum jeito de eu colocar um cmd de admin master de tipo /versenha [nome do player - online/offilne]
Pra sei lб se algum infeliz estiver abusando de bug ou qlqr outra coisa?
Reply
#10

Sim aquilo vai aparecer quando tu olhar a senha do cara no phpmyadmin,

Tou meio ainda por fora dessa nova versгo, mais acho que da sim pra tu criar um comando para ver a senha sim..
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)