Group: Hackerss Member
Posts: 8
Joined: 2-November 07
Member No.: 3,513
Bueno la cosa es la siguiente si encripto en md5 hash1 .mm en una tabla que yo elabore jala mi login pero cuando intento entrar con la tabla User que se encuentra en la BD mysql no me deja es posible entrar puesto el el PHPMYADMIN lo hace pero eh estado revisando como hacerlo pero la verdad no doy aun espero me puedan apoyar para crear los usuario simplemente uso el
CODE
GRANT ALL PRIVILEGES ON *.* TO xxx IDENTIFIED by 'password';
Asi es como cree un usuario llamado xxx entonces quiero acceder con el y si accedo por medio del usuario si entra pero cuando valido la contraseña pues no jala la verdad desconosco como encripta el password tal vez si lo encripto en el mismo tipo asi lo podria comparar pero no se q tiepo sea ya intente guardando el password en md5 y comparandolo con md5 igual hash1 pero la cosa es que me manda distintas encriptaciones con los mismos caracteres
este es mi codigo para acceder a la base mysql tabla user
Group: Root Admin
Posts: 1,490
Joined: 1-June 07
From: Argentina
Member No.: 2,479
QUOTE(paridoxmama @ Nov 3 2008, 09:48 PM)
tal vez si lo encripto en el mismo tipo asi lo podria comparar pero no se q tiepo sea ya intente guardando el password en md5 y comparandolo con md5 igual hash1 pero la cosa es que me manda distintas encriptaciones con los mismos caracteres
Eso es lo que debes hacer, encriptar el hash y compararlo con el de la db. obtenes el hash con la funcion md5():
[...]$reg="SELECT user,password FROM user WHERE usr='$usr' AND psw='".md5($_POST['psw'])."'"; $reg=mysql_query($reg); [...]
--------------------
QUOTE
Much like a baby is comforted by the rhythmic heartbeat and protective arms of a mother, so too am I comforted by monitors, logs, throughput graphs, scrolling shells; the dull background thrum of my infrastructure, all speaking the steady pulse of the network.
Group: Colaborador
Posts: 633
Joined: 21-April 06
From: La concha de la lora
Member No.: 164
si o utiliza la funcion MD5 del propio MySQLa la hora de generar el hash y a la hora de comparar, con eso sabrás que utilizas exactamente la misma funcion para todos los casos.
Group: Hackerss Member
Posts: 8
Joined: 2-November 07
Member No.: 3,513
Hola de nuevo mi problema radica basicamente en esto :
md5 world /*Aqui encripte como ejemplo la palabra world*/ 7d793037a0760186574b0282f2f435e7 //<-- la genero md5('world')
/*----- Cuando almaceno a la base de datos y recuperar la contraseña ------*/
*4A319F60B7BCB883DF4B7CEE9139768A6BA626F0 //<-- Esto es lo que me despliega mysql
/* Eh ahi el problema de por que no puedo comparar las cadenas y por tanto no me queda el login */ Alguien sabe como solucionar esto por que ya intente con encriptar hash1('world') pero igual en la BD me almacena otro valor se me hace que encripta lo encriptado o no se no me viene a la idea como hacer la comparacion alguien puede auxiliarme?
Anexo el codigo de insertar
CODE
<? if(isset($_POST['agregalo'])) {
include("conexion.php"); //$conex= new conexion();
$nom=$_POST['nombre']; $psw=md5($_POST['psw']); $priv=$_POST['usr']; $priv=explode(",",$priv); echo $psw; if($priv[0]=='ALL') { mysql_query("GRANT $priv[0] PRIVILEGES ON *.* TO $nom@localhost IDENTIFIED by '$psw'"); } else if($priv[0]=="SELECT") { mysql_query("CREATE USER $nom@localhost IDENTIFIED BY '$psw'"); mysql_query("GRANT $priv[0] ON *.* TO $nom@localhost"); } else if($priv[0]=="UPDATE") { mysql_query("CREATE USER $nom@localhost IDENTIFIED BY '$psw'"); mysql_query("GRANT $priv[0],$priv[1] ON *.* TO $nom@localhost"); }
Group: Root Admin
Posts: 1,443
Joined: 7-July 07
From: Buenos Aires, Argentina
Member No.: 2,688
justamente... si tu tienes en un lado una cadena de texto encriptada (hash)
y por el otro lado otra cadena de texto sin encriptar, lo que tienes que hacer es o desencriptar una o encriptar la otra. Como desencriptar hash no se puede, deberas tener que encriptar la que no se enncuentra encriptada
O sea, encripta la contraseña que puso el usuario, y al hash resultante comparalo con el que se encuentra en la BD
Cualquier cosa: ironic@ironicnet.com Msn: ironic@ironicnet.com Registrate en Bux.to y sumate unos dolares mensuales! No te hace millonario, pero ayuda...
Group: Moderador Global
Posts: 1,478
Joined: 21-April 06
From: Catalunya
Member No.: 41
Como dice Pelu:
MD5(str)
Calculates an MD5 128-bit checksum for the string. The value is returned as a binary string of 32 hex digits, or NULL if the argument was NULL. The return value can, for example, be used as a hash key.
No digo que tu aplicación este mal, pero con esto te aseguras que lo hará perfectamente. Cuando se registre le pides a mysql que te encripte la pass con la función MD5, y para loguearse es lo mismo, la pass que te meta la vuelves a encriptar con la función, y comparas.
Group: Hackerss Member
Posts: 8
Joined: 2-November 07
Member No.: 3,513
Hola de nuevo eh intentado hacer lo siguiente
CODE
mysql_query("GRANT $priv[0] PRIVILEGES ON *.* TO $nom@localhost IDENTIFIED by MD5'$psw'");
y
CODE
mysql_query("GRANT $priv[0] PRIVILEGES ON *.* TO $nom@localhost IDENTIFIED by MD5('$psw')");
tambien
CODE
mysql_query("GRANT $priv[0] PRIVILEGES ON *.* TO $nom@localhost IDENTIFIED by SELECT MD5'$psw'");
pero nada de nada mm no me manda error me dice que lo almaceno pero no me almacena nada sin embargo si lo pongo asi
CODE
mysql_query("GRANT $priv[0] PRIVILEGES ON *.* TO $nom@localhost IDENTIFIED by '$psw'");
si lo almacena ahora la cuestion que me encontre algo mientras leia
grant all privileges on *.* 'loco'@'localhost' identified by 'algo';
ahi me crearia el usuario loco y le daria todos los privilegios bueno todos -1 en fin la cosa no es esa la duda es que vi esto
CODE
IDENTIFIED BY PASSWORD('algo');
y
CODE
IDENTIFIED BY ('algo');
en C dice que para desencriptar PASSWORD('algo') se usa esta funcion make_scrambled_password(); pero la cosa es que 1 uso php y 2 no se si por defecto esto
CODE
IDENTIFIED BY PASSWORD('algo');
y
CODE
IDENTIFIED BY ('algo');
sea lo mismo puesto que yo uso la segunda y php no me deja usar la de PASSWORD bueno si me deja pero no almacena en la tabla :|
CODE
mysql_query("GRANT $priv[0] PRIVILEGES ON *.* TO $nom@localhost IDENTIFIED by PASSWORD('$psw')");
This post has been edited by paridoxmama: Nov 4 2008, 06:15 PM
Group: Root Admin
Posts: 1,443
Joined: 7-July 07
From: Buenos Aires, Argentina
Member No.: 2,688
Mmm ese script no es para validar un acceso... sino para brindar permiso a un usuario (de la base de datos, no de la aplicacion) sobre tablas, vistas y otros recursos...
Cualquier cosa: ironic@ironicnet.com Msn: ironic@ironicnet.com Registrate en Bux.to y sumate unos dolares mensuales! No te hace millonario, pero ayuda...
Group: Hackerss Member
Posts: 8
Joined: 2-November 07
Member No.: 3,513
QUOTE(Ironic @ Nov 4 2008, 06:28 PM)
Mmm ese script no es para validar un acceso... sino para brindar permiso a un usuario (de la base de datos, no de la aplicacion) sobre tablas, vistas y otros recursos...
Creo que te estas confundisendo... los usuarios de la bd con los usuarios de la aplicacion...
o no entendi nada del post sino
Creo que no me di a explicar la cuestion es la siguiente mi aplicacion es crear usuarios en la bd mysql tabla user ya los eh creado y mi aplicacion los crea correctamente la cosa ahora es guardar el password en el campo Password en formato encriptado MD5 para poderlo comparar
La finalidad es acceder a mysql desde mi aplicacion como lo hace una aplicacion ejemplo PHPMYADMIN vez que tu pones tu usuario y tu pass y te mete eso es lo que quiero hacer que me deje acceder ... espero darme a entender esta vez
shell> mysql --user=root mysql mysql> INSERT INTO user -> VALUES('localhost','monty',PASSWORD('some_pass'), -> 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); mysql> INSERT INTO user -> VALUES('%','monty',PASSWORD('some_pass'), -> 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); mysql> INSERT INTO user SET Host='localhost',User='admin', -> Reload_priv='Y', Process_priv='Y'; mysql> INSERT INTO user (Host,User,Password) -> VALUES('localhost','dummy',''); mysql> FLUSH PRIVILEGES;
Cualquier cosa: ironic@ironicnet.com Msn: ironic@ironicnet.com Registrate en Bux.to y sumate unos dolares mensuales! No te hace millonario, pero ayuda...
Group: Hackerss Member
Posts: 8
Joined: 2-November 07
Member No.: 3,513
QUOTE(pelu @ Nov 5 2008, 10:13 AM)
Te hemos entendido mal, bueno malentendimientos aparte, has esta select:
CODE
select password('hola'), md5('hola')
verás que no es el mismo algoritmo y te genera diferentes hash
por lo tanto tienes que hacer como te dice marioly:
CODE
SELECT * FROM user WHERE User = 'pablito' AND Password = PASSWORD('algo')
saludos
Si comprendo la diferencia entre PASSWORD y MD5 y si asi se haria desde consola y jalaria bien la cuestion es hacerlo desde php"Password = PASSWORD('algo')" Puesto que en php no se como se haga lo de la funcion PASSWORD ya que no encuentro la funcion o no veo como jalarla o de donde jalarla para incluirla en el archivo...es lo unico que me falta para poder sentirme feliz de haber hecho la aplicacion.
This post has been edited by paridoxmama: Nov 5 2008, 08:07 PM