Comunidad de diseño web y desarrollo en internet online

Encriptación MySQL

Citar            
MensajeEscrito el 13 Ene 2009 06:36 pm
Hola:

Recientemente migré una base de datos de usuarios a un nuevo servidor. Ahora las contraseñas no son reconocidas por la aplicación PHP del sitio, y es que, al parecer, el nuevo servidor encripta de forma distinta las contraseñas. Lo sé porque creé un nuevo usuario yel código que reemplaza la contraseña en PHP MyAdmin es mucho más corto que el anterior.

¿Cómo puedo hacer para que las contraseñas anteriores vuelvan a funcionar?

Gracias.

Por elmaluf

Claber

243 de clabLevel

2 tutoriales

 

chrome
Citar            
MensajeEscrito el 13 Ene 2009 07:27 pm
No hablas de que función utilizas, supongo utilizas la de password. Eso pasa cuando migras de un BD vieja a una nueva. En la nueva debes usar old_password(o algo así) en vez de la función password.


saludos

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 13 Ene 2009 07:34 pm
Pero, ¿dónde?, ¿en PHP? o en MySQL?

Por elmaluf

Claber

243 de clabLevel

2 tutoriales

 

chrome
Citar            
MensajeEscrito el 13 Ene 2009 07:47 pm

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 13 Ene 2009 08:09 pm
Muy amable Inyaka, sin embargo las soluciones que se plantean con old_password se refieren a la conexión con la base de datos. Yo lo que necesito es que los viejos usuarios se puedan seguir logueando con su antigua contraseña.

Por elmaluf

Claber

243 de clabLevel

2 tutoriales

 

chrome
Citar            
MensajeEscrito el 13 Ene 2009 08:15 pm
Corrección: Lo que necesito es que los usuarios se puedan seguir loguendo con su antigua contraseña DESDE EL SITIO.

Por elmaluf

Claber

243 de clabLevel

2 tutoriales

 

chrome
Citar            
MensajeEscrito el 13 Ene 2009 08:18 pm
disculpa fui un poco pesado, pero ese link es muy gracioso XD


tienes 1 funcion que logra traducir las viejas contraseñas y los nuevos usuarios con sus nuevas contraseñas osea es un caso OR el otro

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 13 Ene 2009 08:23 pm
Gracias de nuevo, aún no la tengo clara. Ojalá existiera un tutorial sobre el tema.

Por elmaluf

Claber

243 de clabLevel

2 tutoriales

 

chrome
Citar            
MensajeEscrito el 13 Ene 2009 08:27 pm
imprime la consulta que usas para loguear a tus usuarios, sin codigo php de por medio y en lo posible usando la etiqueta [mysql] para que veamos coloreado el codigo

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 13 Ene 2009 08:33 pm
¿Y si le generas contraseñas aleatorias a cada usuario y se las mandas por mail? Creo que esa sería la alternativa si descubres que el problema es por palabras mayores o si el problema es insolucionable...

Inyaka escribió:

ese link es muy gracioso

+1 :lol:

Por KB-27

Claber

301 de clabLevel



 

My very secret HQ

firefox
Citar            
MensajeEscrito el 13 Ene 2009 10:42 pm
Quisiera saber cual es la función que utilizaste para encriptar las contraseñas, ¿por casualidad utilizaste la función crypt() ?

Por Odin

Claber

639 de clabLevel

2 tutoriales

Genero:Masculino   Premio_Secretos

El valle de las hamacas

firefox
Citar            
MensajeEscrito el 13 Ene 2009 10:45 pm
No recuerdo haber utilizado ninguna función; simplemente hice que lo ingresado en el campo passw del formulario se insertara en la base de datos, como cualquier otro dato.

Por elmaluf

Claber

243 de clabLevel

2 tutoriales

 

chrome
Citar            
MensajeEscrito el 13 Ene 2009 10:52 pm
Las contraseñas no se encriptan mágicamente, si tu no las encriptaste por medio de alguna función entonces no se encuentran encriptadas. Una manera de averiguarlo es revisando tu base de datos en phpMyAdmin o haciendo una consulta a la tabla en la que estan almacenadas. Si puedes leer las contraseñas es porque no están encriptadas, si en lugar de las contraseñas aparecen muchas letras y números entonces sí están encriptadas.

Por Odin

Claber

639 de clabLevel

2 tutoriales

Genero:Masculino   Premio_Secretos

El valle de las hamacas

firefox
Citar            
MensajeEscrito el 14 Ene 2009 02:43 am

elmaluf escribió:

No recuerdo haber utilizado ninguna función; simplemente hice que lo ingresado en el campo passw del formulario se insertara en la base de datos, como cualquier otro dato.


Tuviste que encriptar en algun lado, revisa con calma y verás.

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos



Ultima edición por Dano el 14 Ene 2009 03:44 pm, editado 1 vez

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 14 Ene 2009 05:13 am

elmaluf escribió:

No recuerdo haber utilizado ninguna función; simplemente hice que lo ingresado en el campo passw del formulario se insertara en la base de datos, como cualquier otro dato.


usaste la funcion de mysql para encriptar, yo en lo personal uso las de php, que hay varias con diferentes argoritmos, la verdad, yo no tengo ni la menor idea de que metodo de encriptación usa en sus funciones mysql


por cierto postea el codigo con el cual verificas el usuario

Por Inyaka

Claber

3176 de clabLevel

9 tutoriales
2 articulos

Genero:Masculino   Desarrollador de GAIA

Programador y fotógrafo

firefox
Citar            
MensajeEscrito el 15 Ene 2009 03:14 pm
Tienen razón, creo que la función utilizada para encriptar es password().

Pongo a continuación el código utilizado para el registro de nuevos usuarios:

Omar escribió:

$result = mysql_query("insert into user values
('$name', '$username', '$email', password('$passwd'))");


La solución con old_password que me han sugerido, creo que sirve para actualizar la contrseña de un usuario de MySQL, pero no de los usuarios de la tabla de una base de datos. ¿O me equivoco?

Por elmaluf

Claber

243 de clabLevel

2 tutoriales

 

chrome
Citar            
MensajeEscrito el 15 Ene 2009 03:46 pm
No, aqui te explica para que sirve old_password(), pero creo que igual no te servirá para dar solución a tu problema... Y de hecho, hay una nota que dice que password() no debe utilizarse para aplicaciones propias, que en ese caso hay que utilizar MD5() o SHA1(), claro, esto siempre y cuando quieras hacer la encriptación direcatmente con MySQL...

Creo que te va a tocar hacer lo que dije anteriormente:

KB-27 escribió:

¿Y si le generas contraseñas aleatorias a cada usuario y se las mandas por mail?
Y vamos, investiga un poco... el link que puse fue el tercer resultado en google al buscar desencriptar password mysql...

Saludos

Por KB-27

Claber

301 de clabLevel



 

My very secret HQ

firefox
Citar            
MensajeEscrito el 15 Ene 2009 05:36 pm
Lo mejor es encriptar con hash + md5, o cuestiones así.

Lo sabía, sabía que tu problema era que usabas password, por eso te recomendaba old_password.

La idea es que al comparar los usuarios en vez encriptar con password, lo hagas con old_password, igual para los nuevos(eso ya lo entendiste).

Algo así:

Código :

Select * FROM users WHERE tu_campo_password = old_password('valor') 


En vez de utilizar password, utilizas old_password para verificar al usuario, y listo, es todo, nada de alterar toda la tabla o reenviar pass.

saludos

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 17 Ene 2009 07:27 am
Bueno primeramente creo que deberias saber en que encriptacion estan almacenadas las contraseñas, para asi poder hacer la comprobacion. la mas usual es md5, asi que creo que podria intentar con algo asi como esto:

[quote=""]$link = Conectarse();
//if(isset($_POST["pass"]) && isset($_POST["usu"]))
//{
$nickN = $_POST['usu']; //aca tu usuario a comprobar
$passN = md5($_POST['pass']); //aca tu cotraseña a comprobar iciendole que esta en md5
$result = mysql_query("SELECT contrasena FROM usuarios WHERE nick='$nickN'") or die(mysql_error()); //consultamos BD
if($row = mysql_fetch_array($result))[code]

De igual forma te recomiendo revises muy bien en que encritacion esta, y revisa si no es tu mismo codigo php quien la esta encriptandoo al insertarlos datos en la base de datos.

Saludos

Por JoseAlejandro_Realza

63 de clabLevel



Genero:Masculino  

Incursionista de Tecnologias

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.