[Off] Encriptaciуn sha1 y md5 en MySQL
#1

Lo que quiero hacer es un CPU donde te registres y a la vez te registre en el servidor SAMP y en el foro SMF.
Lo que me da dudas es que en la base de datos de SMF usa encriptaciуn para las passwords y no sй como hacer para que el servidor de SAMP me lea la password ya encriptada.
Reply
#2

Las versiones anteriores de SMF usaban MD5 y la version mбs actualizada usa sha1, lo mejor seria crear 2 bases distintas para no hacer tantas modificaciones (PCU Y FORO) y despues agregar en el registro del pcu una consulta para que se registre el mismo nombre y contraseсa en la base de datos del foro y despues compararlos con una ID unica o el nombre de usuario si quieres agregar otras cosas.

en PHP podrнas mirar tu mismo los archivos y mirar que tipo de encriptaciуn tienen o si no sabes compararlas con un ejemplo en un archivo php que las encripte, algo asi...

PHP код:
<form method="post">
    <input type="text" name="encriptar" placeholder="ingresa algo..">
    <input type="submit" name="comprobar" value="encriptar texto">
</form>
<?php
if(isset($_POST["comprobar"]))
{
    
$texto $_POST["encriptar"];
    
    if(empty(
$texto))
    {
        echo 
"escribe algo";
    }
    else
    {
        
/* Ejemplos de encriptaciуn */
        
echo "<br>Encriptaste la palabra ".$_POST["encriptar"]." en sha1 resultado: <strong>".sha1($texto)."</strong><br>";
        echo 
"Encriptaste la palabra ".$_POST["encriptar"]." en MD5 resultado: <strong>".md5($texto)."</strong>";
        
        
/* Este es el metodo de encriptaciуn de SMF actualmente */
        
echo "<br>En SMF es: <strong>".sha1(strtolower($texto))."</strong>";
    }
}
?>
Cuidado con la funcion strtolower de PHP porque devuelve la cadena en minusculas.


y en pawn tiene aсos que lo toco pero seria algo asi

PHP код:
INSERT INTO smf_members (`member_name`, `passwd`) VALUES('nombre_usuario'SHA1('contrasena')).... 
Reply
#3

Estuve investigando y encontrй que SMF guarda la password en el formato nombredeusuariopassword, no se si me explico pero a lo que voy es que junta el nombre de usuario con la password y asн se encripta en sha1, pero yo solo quiero que encripte la password sola, sin el nombre de usuario, їcуmo puedo lograrlo?
Reply
#4

No utilizo SMF pero tendrнas que modificar entonces el formulario de ingreso y remover el nombre de usuario, creo que tambien utiliza password_salt que son otros 4 digitos al azar y deshabilitar el registro desde el foro o tambien modificarlo pero seria ilogico tomando en cuenta que vas a crear el usuario desde el registro del cpu.
Reply
#5

Este es el formato que usa SMF:

PHP код:
SHA1(CONCAT(LOWER('Nombre_Cuenta'), 'Contraseсa')) 
Lo busque hace mucho para mi servidor.
Reply
#6

Yo tengo exactamente lo que tu quieres y la parte del gamemode lo tengo asн:

Crear cuenta:

pawn Код:
SQL_CrearCuenta(const username[], const password[])
{
    static query[512];
    format(query, sizeof(query), "INSERT INTO `cuentas` (`Username`, `Password`, `RegisterDate`, `LoginDate`) VALUES('%s', SHA1('%s'), '%s', '%s')", username, password, ReturnDate(), ReturnDate());
    mysql_function_query(g_iHandle, query, false, "", "");
}
Y con esto compruebo las claves:

pawn Код:
SQL_ComprobarClave(playerid, const password[])
{
    static query[300];
    format(query, sizeof(query), "SELECT `ID` FROM `cuentas` WHERE `Username` = '%s' AND `Password` = SHA1('%s')", PlayerInfo[playerid][pNombreJugador], password);
    mysql_function_query(g_iHandle, query, true, "OnQueryFinished", "dd", playerid, ComprobarIntentoLogin);

}
Reply
#7

їCуmo hago para registrarme en el CPU y a la vez que me re registre en el servidor SAMP y el el foro SMF?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)