06.03.2017, 23:07
Hello, I am trying to make a system that encrypts passwords in SHA1.
I did this:
Register:
Login not found:
Funtion:
Encryption works fine but never validates the key. Someone help me ?
+ rep To help me.
I did this:
Register:
pawn Код:
format(Query, sizeof(Query), "INSERT INTO `usuarios` (Nombre, Password) VALUES ('%s', SHA1('%s'))",pName, PlayerInfo[playerid][pKey]);
mysql_function_query(ConexionDB, Query, true, "OnQueryFinish", "ii", 0, playerid);
format(string, sizeof(string), "Has registrado el personaje %s en nuestro servidor.\n\nAhora inicia sesiуn", pName);
ShowPlayerDialog(playerid, DialogInicio, DIALOG_STYLE_PASSWORD,"Iniciar sesiуn",string,"Enviar","Salir");
Login not found:
pawn Код:
case DialogInicio:
{
if(!response)
{
MotivoExpulsado(playerid, 3);
return 1;
}
if(PassValida(playerid, inputtext) && (strlen(inputtext) > 0))
{
if(strcmp(PlayerInfo[playerid][pKey], inputtext, true, 128) == 0)
{
printf("inputtext %s", inputtext);
if(strlen(inputtext) >= 1)
{
format(Query, sizeof(Query), "SELECT * FROM `usuarios` WHERE `Nombre` = '%s'", pName);
mysql_function_query(ConexionDB, Query, true, "OnQueryFinish", "ii", 1, playerid);
printf("Query %s", Query);
SendClientMessage(playerid, -1, "Clave correcta");
}
else
{
SendClientMessage(playerid, -1, "ї Si no escribes una contraseсa como narices vas a entrar ?.");
if(IntentosEntradaClaveErronea[playerid] > 2)
{
MotivoExpulsado(playerid, 4);
return 1;
}
format(string, sizeof(string), "Contraseсa Incorrecta.\nTe quedan %d/3 intentos", IntentosEntradaClaveErronea[playerid], pName);
ShowPlayerDialog(playerid, DialogInicio, DIALOG_STYLE_PASSWORD,"Iniciar sesiуn",string,"Enviar","Salir");
IntentosEntradaClaveErronea[playerid] ++;
return 1;
}
}
else
{
print("INCORRECTA");
ShowInfoForPlayer(playerid, "~w~ЎCONTRASEСA ~r~INCORRECTA", 3000);
format(string, sizeof(string), "Contraseсa Incorrecta.\nTe quedan %d/3 intentos", IntentosEntradaClaveErronea[playerid], pName);
ShowPlayerDialog(playerid, DialogInicio, DIALOG_STYLE_PASSWORD,"Iniciar sesiуn",string,"Enviar","Salir");
IntentosEntradaClaveErronea[playerid] ++;
return 1;
}
}
return 1;
}
pawn Код:
funcion PassValida(playerid, cadena[])
{
// if(IsValidNPC(playerid)) return 1;
new query[1024];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(query, sizeof(query),"SELECT * FROM usuarios WHERE Nombre = '%s' AND Password = SHA1('%s') LIMIT 1",name, cadena);
mysql_function_query(ConexionDB, query, true, "OnQueryFinish", "ii", 0, playerid);
printf("name %s - Clave %s", name, cadena);
printf("Password %s", name, cadena);
return 1;
}
Encryption works fine but never validates the key. Someone help me ?
+ rep To help me.