Foros del Web » Programando para Internet » PHP »

PHP - Encryptar Password

Estas en el tema de PHP - Encryptar Password en el foro de PHP en Foros del Web. Tengo en una DB de MySQL un campo llamado password, tipo varchar(32) y deseo guardar allí el dato de contraseña, pero encryptado. ¿Existe alguna función ...
  #1 (permalink)  
Antiguo 26/08/2002, 08:11
jcl
 
Fecha de Ingreso: enero-2002
Mensajes: 673
Antigüedad: 22 años, 3 meses
Puntos: 1
PHP - Encryptar Password

Tengo en una DB de MySQL un campo llamado password, tipo varchar(32) y deseo guardar allí el dato de contraseña, pero encryptado.

¿Existe alguna función que haga eso, automáticamente?

Gracias
  #2 (permalink)  
Antiguo 26/08/2002, 08:23
 
Fecha de Ingreso: mayo-2002
Mensajes: 115
Antigüedad: 21 años, 11 meses
Puntos: 0
Re: PHP - Encryptar Password

Para encriptar una cadena, en tu caso la cadena password puedes utilizar la función crypt()
  #3 (permalink)  
Antiguo 26/08/2002, 08:26
 
Fecha de Ingreso: mayo-2002
Mensajes: 115
Antigüedad: 21 años, 11 meses
Puntos: 0
Re: PHP - Encryptar Password

Por cierto olvidava decirlo, si utilizas esta función, no podras desencriptar lo que encriptes, por eso deberas asignarle una clave, que generalmente se utilizan dos numros (los que tu quieras), y comprobar los datos encriptados.
  #4 (permalink)  
Antiguo 26/08/2002, 08:26
jcl
 
Fecha de Ingreso: enero-2002
Mensajes: 673
Antigüedad: 22 años, 3 meses
Puntos: 1
Re: PHP - Encryptar Password

Gracias,

Lo probaré.
  #5 (permalink)  
Antiguo 26/08/2002, 08:32
jcl
 
Fecha de Ingreso: enero-2002
Mensajes: 673
Antigüedad: 22 años, 3 meses
Puntos: 1
Re: PHP - Encryptar Password

Bueno,

Quizás no me expliqué bien o no entendí lo que dice tu segundo mensaje.

Por supuesto, la intención es guardar la información del password pero de manera tal que ni el administrador pueda descifrar su contenido. Eso ya es materia de vieja data, lo que pasa es que no sé cuál es el fundamento que rige esa materia aquí en PHP-MySQL.

Me imagino que estas herramientas deben estar provistas de algo similar ... no lo se.

Gracias.
  #6 (permalink)  
Antiguo 26/08/2002, 08:48
 
Fecha de Ingreso: mayo-2002
Mensajes: 115
Antigüedad: 21 años, 11 meses
Puntos: 0
Re: PHP - Encryptar Password

Lo que quise decir en el otro mensaje es que cuando encriptas algo con crypt() si no le asignas una clave, te saldra difernte cada vez, por ejemplo imaginemos que mi password es $password="1122" y entonces utilizamos la función crypt para encriptarlo sin asignarle una clave: $password_encriptado=crypt($password), y despues haces echo $password_encriptado; y te printea en pantalla "jglbvldxgfl", hasta aqui todo bien, despues vuelves a hacer la misma operacion y te saldra otro resultado diferente del primero, y esto se debe a que si no le asignas una clave la funcion coge una clave aleatoria, para que cuando encrptes la cadena $password y siempre te de el mismo resultado deberias hacer algo asi:
<?
$clave="01";
$password="1122";
$password_encriptado=crypt($password,$clave);
?>
En resumen debes poner una clave elegida por ti para encriptar cualquier cosa.

Si no entiendes algu o tienes mas dudas sobre esto dimelo y te ayudare con gusto.

Un Saludo
  #7 (permalink)  
Antiguo 26/08/2002, 09:00
jcl
 
Fecha de Ingreso: enero-2002
Mensajes: 673
Antigüedad: 22 años, 3 meses
Puntos: 1
Re: PHP - Encryptar Password

De acuerdo, eso suena bien, pero cuando la persona introduce su password ... ¿como valido y verifico ese password? o ¿debo enteder que con lo de la clave, el sistema se encarga de desecriptar y validar con lo que entra?

¿Me expliqué?

Gracias.
  #8 (permalink)  
Antiguo 26/08/2002, 09:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Re: PHP - Encryptar Password

con MD5() sobra para lo q deseas hacer ..

$variable="algo";
$variable_encriptada=MD5($variable);

y lo guardas en tu campo de tu BBDD contraseña ...

Recuerda que esta encriptacion es en un solo sentido .. asi q no hay posibilidad de "descifrala" .. pero si de compararla:

$variable_de_un_formulario="algo";
$variable_que_saco_de_mi_BBDD_campo_pass=$row['password];

if (MD5($variable_de_un_formulario) != $variable_que_saco_de_mi_BBDD_campo_pass){
echo "no es correcto su password";
}

Es decir . por este metodo solo lo sabe el usuario q puse ese password y no hay manera de hacerle un "recordar contraseña" o de q ni tu ni el administrador del hosting aunque acceda a ese campo contrase vea la contraseña desecriptada ...

Eso si .. de nada sierve tener en una misma BBDD una tabla con las contraseñas para acceder a otras tablas de la misma BBDD .. ya q ese administrador de la BBDD podrá igualmente ver la informacion restante ..

Si deseas encriptar/desencriptar deberias usar las extensiones myCrypt() ..

Un saludo,
  #9 (permalink)  
Antiguo 26/08/2002, 09:17
jcl
 
Fecha de Ingreso: enero-2002
Mensajes: 673
Antigüedad: 22 años, 3 meses
Puntos: 1
Re: PHP - Encryptar Password

Gracias,

Revisaré la literatura, pues supongo que por el prefijo de myCrypt(), eso debe estar en los manuales de MySQL.
  #10 (permalink)  
Antiguo 26/08/2002, 09:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Re: PHP - Encryptar Password

Bueno .. Mysql tiene su funcion para encriptar tambien ..

pero en mi caso me refereia a las extensiones de PHP mcrypt():
<a href='ir.asp?http://www.php.net/manual/es/ref.mcrypt.php' target='_blank'>http://www.php.net/manual/es/ref.mcrypt....</a>
(escribí mal el nombre de la función)

Un saludo,

  #11 (permalink)  
Antiguo 26/08/2002, 10:01
jcl
 
Fecha de Ingreso: enero-2002
Mensajes: 673
Antigüedad: 22 años, 3 meses
Puntos: 1
Re: PHP - Encryptar Password

Gracias &quot;Cluster&quot;, no te preocupes por ese detalle, pues la respuesta correcta la diste cuando te referías al MD5().

http://www.faqs.org/

http://www.faqs.org/faqs/tcl-faq/part5/index.html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:37.