Password sin codificar.
#1

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.
Reply
#2

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.
Reply
#3

Y por quй no usas Whirlpool en el PCU tambiйn?
Reply
#4

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!
Reply
#5

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!
}
Reply
#6

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!!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)