Password sin codificar. -
Dello - 01.08.2017
Buenas.. Estoy editando una PCU y la estoy conectando a Optimus, el tema es que utilizan diferentes tipos de codificaciуn de password, en Whirlpool, entonces optй por quitarlo y dejar la contraseсa directamente como va.
Necesito saber si йste cуdigo estб mal, (aunque obviamnte sн, pero quisiera saber en quй jajaja)
Код:
switch (GetPVarInt (playerid, "pRegistro"))
{
case 0:
{
if (!response) return Kick(playerid);
if (!(4 <= strlen(inputtext) < MAX_CARACTERES_CLAVE))
{
DialogLR (playerid, 1);
return Mensaje (playerid, -1, "La contraseсa debe tener desde 4 a 32 caracteres.");
}
InfoJugador [playerid][jClave] = strlen(inputtext);
SetPVarInt (playerid, "pRegistro", 1);
Dialog(playerid, dRegistro, DIALOG_STYLE_INPUT, HEADER_REGISTRO, DIALOG_REGISTRO2, "Continuar", "Salir");
LoginSecs [playerid] = 0;
}
Cuando ingreso una contraseсa nъmerica, por ejemplo: 443355, me salta sуlamente un numero en la DB (y es la contraseсa que queda) por ejemplo: 8.
Respuesta: Password sin codificar. -
Dello - 01.08.2017
Ya me di cuenta sуlo, soy un salame. Estaba poniendo strlen y al investigar, es el largo de los dнgitos de la palabra jajaja, soy un novato.
Respuesta: Password sin codificar. -
aoEXE - 01.08.2017
Y por quй no usas Whirlpool en el PCU tambiйn?
Respuesta: Password sin codificar. -
Dello - 01.08.2017
Quote:
Originally Posted by aoEXE
Y por quй no usas Whirlpool en el PCU tambiйn?
|
Html y css manejo re piola, pero en php hace mucho que no lo toco y me pierdo jajaja, me ayudas con йste cуdigo y usar Whirlpool tambiйn (como el de la gm)?
Mirб, el que usa la GM es algo asн
Код:
stock udb_hash(buf[]) // by: DracoBlue
{
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;
}
Mientras que el de la PCU es algo asн
PHP код:
<?php
if(Config::init()->isLogged()) header('Location: ' . Config::$_PAGE_URL . '');
if(isset($_POST['f_submit'])) {
$q = Config::$g_con->prepare("SELECT * FROM `accounts` WHERE `Username` = ? AND `Password` = ? LIMIT 0,1");
$q->execute(array($_POST['f_name'],hash('whirlpool',$_POST['f_password'])));
if($q->rowCount() != 0) {
$row = $q->fetch();
$_SESSION['user'] = $row['Username'];
header('Location: ' . Config::$_PAGE_URL . '');
} else echo '<center><font color="red">Nombre de usuario o contraseсa incorrecta.</font>';
}
Si podrнas ayudarme te lo agradecerнa mucho jajaja, saludos!
Respuesta: Password sin codificar. -
aoEXE - 01.08.2017
Ah, debes cambiar es el modo de juego.
Busca Whirlpool pawn samp y te saldrб para descargar el plugin, lo pones en la carpeta plugins del servidor sa-mp y en el GM pones abajo de los includes:
Код:
native WP_Hash(buffer[],len,const str[]);
y en el server.cfg
Код:
...
hostname SA-MP 0.3 Server
gamemode0
filterscripts
plugins Whirlpool.dll
announce 1
...
Tienes que poner en el enum de los datos de usuario a la variable de la contraseсa asignarle 129 de tamaсo.
Код:
enum E_DATA
{
...
jClave[129],
...
};
En el registro:
Код:
//Comprobar longitud y eso con inputtext y luego
WP_Hash(InfoJugador[playerid][jClave],129,inputtext);
y en el inicio de sesiуn
Код:
//Cargar la contraseсa codificada del usuario guardada en la base de datos a InfoJugador[playerid][jClave]
new pass_hash[129];
WP_Hash(pass_hash,129,inputtext);
//y comprobar si son iguales las contraseсas codificadas.
if(strcmp(pass_hash, InfoJugador[playerid][jClave], false) != 0)
{
//Contraseсa incorrecta!
}
else
{
//Contraseсa correcta!
}
Respuesta: Password sin codificar. -
Dello - 01.08.2017
Muchнsimas gracias! Habнa probado colocando el cуdigo del Native Wp_hash y me daba errores pero maсana intento devuelta xq ando del Celu. Muchas gracias!!