Foros del Web » Programando para Internet » PHP »

encriptacion

Estas en el tema de encriptacion en el foro de PHP en Foros del Web. Tengo entendido que hay una forma de encriptar contraseñas en php, creo que es m5, alguien podria dar un ejemplo claro de como encriptar, y ...
  #1 (permalink)  
Antiguo 25/01/2002, 11:18
 
Fecha de Ingreso: julio-2001
Ubicación: Internet
Mensajes: 1.690
Antigüedad: 22 años, 8 meses
Puntos: 1
encriptacion

Tengo entendido que hay una forma de encriptar contraseñas en php, creo que es m5, alguien podria dar un ejemplo claro de como encriptar, y des-encriptar esa informacion utilizando esta utilidad.

Gracias.
  #2 (permalink)  
Antiguo 25/01/2002, 11: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: encriptacion

En el manual tienes ejemplos .. de como usar las funciones de encriptado/des.. que tiene PHP.

<a href='ir.asp?http://www.php.net/manual/es/ref.mcrypt.php' target='_blank'>http://www.php.net/manual/es/ref.mcrypt....</a>

Un saludo,

  #3 (permalink)  
Antiguo 25/01/2002, 11:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Re: encriptacion

Se me olvido...

Para usar las funciones mencionadas necesitas tener instalado unas librerias en tu PHP .. Pero se puede hacer tambien sin usar esas librerias ..

Un saludo, ya se que no pongo el codigo .. jeje :P
  #4 (permalink)  
Antiguo 25/01/2002, 13:15
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Re: encriptacion

jlmm. La función es md5() y recibe como parámetro lo que quieres encriptar. Esta funcion es solo de &quot;ida&quot;, por lo que no es posible que desencriptes lo encriptado. md5() siempre devuelve un hash de 32 bytes de longitud.

Saludos.

<hr><font size=2 face="verdana">- Pablo Daniel Rigazzi (Webstudio)
<font size=1 color="#333333">COORDINADOR PROYECTO REGIONALIZACION ARGENTINA
Visita <a href="http://www.web-studio.com.ar" target="_blank">Web Studio</a> - Tutoriales Photoshop</fo
  #5 (permalink)  
Antiguo 25/01/2002, 19:38
 
Fecha de Ingreso: julio-2001
Ubicación: Internet
Mensajes: 1.690
Antigüedad: 22 años, 8 meses
Puntos: 1
Re: encriptacion

entonces como hago por ejemplo si guardo encriptada una clave en la base de datos, como la comparo con la que introdusca el usuario que esta sin encriptar¿?

Gracias Por Su Ayuda.
  #6 (permalink)  
Antiguo 25/01/2002, 19:59
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Re: encriptacion

Sencillo. Encriptas tambien a que ingresó el usuario y comparas las dos encriptadas. El has resultante tiene que ser el mismo.

Saludos.

<hr><font size=2 face="verdana">- Pablo Daniel Rigazzi (Webstudio)
<font size=1 color="#333333">COORDINADOR PROYECTO REGIONALIZACION ARGENTINA
Visita <a href="http://www.web-studio.com.ar" target="_blank">Web Studio</a> - Tutoriales Photoshop</fo
  #7 (permalink)  
Antiguo 25/01/2002, 20:07
 
Fecha de Ingreso: enero-2002
Ubicación: Dentro del corralón
Mensajes: 287
Antigüedad: 22 años, 3 meses
Puntos: 0
Re: encriptacion

Si estás usando MySQL para almacenar los datos podés usar la función PASSWORD() de MySQL para encriptarla. Tal como te dijo Webstudio es solo de ida pero la usás para encriptar lo que introdujo el usuario y lo comparás con la que tenés almacenada en la tabla.
Saludos!

Leonardo D'Angelo
Buenos Aires
Argentina
  #8 (permalink)  
Antiguo 25/01/2002, 20:47
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Re: encriptacion

Sabés que pasa Idangelo? Si alguien llega a interceptar la comunicacion entre PHP y mySQL, y esta comunicacion no está segura (léase, con SSL), entonces el tipo puede ver mi Query :

INSERT INTO tabla VALUES (PASSWORD('clave_insegura'));

Entendes? En cambio, si insertas en la tabla directamente:

INSERT INTO tabla VALUES ('harqyvhdu%nkyi=lamhot!jnlidpambi');

Ya no va a saber de que se trata el asunto.

Saludos.

<hr><font size=2 face="verdana">- Pablo Daniel Rigazzi (Webstudio)
<font size=1 color="#333333">COORDINADOR PROYECTO REGIONALIZACION ARGENTINA
Visita <a href="http://www.web-studio.com.ar" target="_blank">Web Studio</a> - Tutoriales Photoshop</fo
  #9 (permalink)  
Antiguo 25/01/2002, 22:28
 
Fecha de Ingreso: julio-2001
Ubicación: Internet
Mensajes: 1.690
Antigüedad: 22 años, 8 meses
Puntos: 1
Re: encriptacion

Muchas gracias!, Voy A Revisar de Inmediato La Funcion.
  #10 (permalink)  
Antiguo 26/01/2002, 03:22
 
Fecha de Ingreso: noviembre-2001
Mensajes: 415
Antigüedad: 22 años, 5 meses
Puntos: 0
Re: encriptacion

tanto si usas SSL como si no usas SSL no influye en la comunicación PHP-MySQL.

si vos haces un query al MySQL con MD5(), la contraseña ya fue recibida por PHP desde el form anterior de manera insegura. ahi esta la inseguridad, y ahi es donde se aplica el SSL. el MD5 se usa despues... por ende, tanto si usas MD5() o PASSWORD() es lo mismo.

la unica diferencia entre uno y otro es que un usuario con permisos de admin en el mysql puede ver los querys que suceden en ese momento y ver que el usuario X (webstudio, por ejemplo) hizo un INSERT into tabla (password) VALUES (PASSWORD('textodesencriptado')) .

pero con SSL no te soluciona nada por ese lado.
  #11 (permalink)  
Antiguo 26/01/2002, 12:25
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Re: encriptacion

MMOntes, yo me refiera a SSL entre PHP y MySQL, no entre Browser y Apache.

SAludos.

<hr><font size=2 face="verdana">- Pablo Daniel Rigazzi (Webstudio)
<font size=1 color="#333333">COORDINADOR PROYECTO REGIONALIZACION ARGENTINA
Visita <a href="http://www.web-studio.com.ar" target="_blank">Web Studio</a> - Tutoriales Photoshop</fo
  #12 (permalink)  
Antiguo 26/01/2002, 13:18
Avatar de Ferdy
Colaborador
 
Fecha de Ingreso: junio-2001
Ubicación: España
Mensajes: 1.430
Antigüedad: 22 años, 10 meses
Puntos: 0
Re: encriptacion

Bueno, según, porque si el PHP y el MySQL no están en la misma máquina ????? es posible que haya algún que otro intento de hack, habría que ver cómo van las peticiones, de todas formas tanto si ven el HASH como si ven el password en claro hay algo de inseguridad y posible suplantación.

Salu2.Feliz Coding

- Fernando Pereda ( Ferdy )
<center><a href="http://www.ferdyx.org/firmas.php"><img src="http://www.ferdyx.org/reg_tira.jpg" border="0"></a></center>
  #13 (permalink)  
Antiguo 27/01/2002, 18:13
 
Fecha de Ingreso: enero-2002
Ubicación: Dentro del corralón
Mensajes: 287
Antigüedad: 22 años, 3 meses
Puntos: 0
Re: encriptacion

OK. De todas maneras voy a tener en cuenta el consejo de Pablo y encriptar ANTES de insertar. ¡Todos los días se aprende algo nuevo!
Saludos.

Leonardo D'Angelo
Buenos Aires
Argentina
  #14 (permalink)  
Antiguo 31/01/2002, 13:45
Avatar de chubu  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 133
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: encriptacion

exacto, ademas no siempre tendremos el server web y el de sql en la misma maquina, o dentro de la misma red, pueden ser 2 servers que se comunican atraves de internet, mas vale asegurar antes el query.
  #15 (permalink)  
Antiguo 01/02/2002, 12:53
 
Fecha de Ingreso: febrero-2002
Mensajes: 27
Antigüedad: 22 años, 2 meses
Puntos: 1
Re: encriptacion

Te paso mi modulo de criptografía. lo uso para mi web (http://gunkan.org/cjapo2...). Lo más importante es la $KEY (la clave para encriptar y desencriptar). Puedes encriptar todo lo que quieras, aunque yo lo uso sólo para los usuarios.

Las funciones que realmente &quot;hacen algo&quot; con;
enc($tmp)
dec($tmp)
que encriptan o desencriptan los datos.
Lo único raro es &quot;hex2bin&quot; que es una función que uso porque me gusta que la codificación tenga un formato &quot;decente&quot;.

Que lo disfrutes.

Ya sé que pensarás que soy bueno por este código. Nada más lejos de la realidad, simplemente es una modificación de lo que encontré en www.php.net.

//////////Módulo Criptográfico por JJFerres

$key = &quot;¿Cuando soporte Hash para PHP?&quot;

function keyED($txt,$encrypt_key)
{
$encrypt_key = md5($encrypt_key);
$ctr=0;
$tmp = &quot;&quot;;
for ($i=0;$i&lt;strlen($txt);$i++)
{
if ($ctr==strlen($encrypt_key)) $ctr=0;
$tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1);
$ctr++;
}
return $tmp;
}

function encriptar($txt,$key)
{
srand((double)microtime()*1000000);
$encrypt_key = md5(rand(0,32000));
$ctr=0;
$tmp = &quot;&quot;;
for ($i=0;$i&lt;strlen($txt);$i++)
{
if ($ctr==strlen($encrypt_key)) $ctr=0;
$tmp.= substr($encrypt_key,$ctr,1) .
(substr($txt,$i,1) ^ substr ($encrypt_key,$ctr,1));
$ctr++;
}
return keyED($tmp,$key);
}

function desencriptar($txt,$key)
{
$txt = keyED($txt,$key);
$tmp = &quot;&quot;;
for ($i=0;$i&lt;strlen($txt);$i++)
{
$md5 = substr($txt,$i,1);
$i++;
$tmp.= (substr($txt,$i,1) ^ $md5);
}
return $tmp;
}

function hex2bin($data) {
$len = strlen($data);
for($i=0;$i&lt;$len;$i+=2) {
$newdata .= pack(&quot;C&quot;,hexdec(substr($data,$i,2)));
}
return $newdata;
}

function enc($tmp)
{
$tmp = encriptar($tmp,$key);
return (bin2hex($tmp));
}

function dec($tmp)
{
$tmp = hex2bin($tmp);
return (desencriptar($tmp,$key));
}
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 15:51.