You are on page 1of 12

Como encriptar contraseñas con MD5 en PHP??

Hola amigos!! Me urge esta respuesta!

Soy administrador de una nueva PTC llamada LatinBux.us. He escuchado que el Script
que utilizo es muy vulnerable a ataques de hackers. Me han dicho que la única solución es
encriptar mi contraseña (administrador) y la de mis usuarios, utilizando MD5 en PHP.
Tengo un servidor pago, pero este no acepta SSL. y la verdad es muy bueno y no quiero
cambiarlo xD.

La verdad es que no tengo nada de conocimientos en esa area!! me urge mucho una
respuesta (lo mas clara posible)

de ante mano Gracias.


Avisos Google

Respuesta: Como encriptar contraseñas con MD5 en PHP??

lee el manual...
http://php.net/md5

ahí explican ejemplos básicos de su uso, y también te invito a buscar en el foro a


profundidad, ya que hay temas que hablan bastante al respecto de seguridad, etc...
__________________
Y U NO RTFM? щ(ºдºщ)

Respuesta: Como encriptar contraseñas con MD5 en PHP??

pues como tienes tu registro de usuario?? tu loggin?? ahi es donde debes indicar el
encriptamiento con la funcion md5 de esto en la web te aseguro que hay mucho tutorial
pero en el manual hay varios ejemplos de todas maneras has una prueba
Código PHP:
Ver original

1. $var = 123;
2. echo $var."<br/>";
3. echo md5($var);
asi de sencillo es encriptar pero en el manual te explican mejor la funcion y en la web hay
bastante material
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way

Respuesta: Como encriptar contraseñas con MD5 en PHP??

//encriptamos la password
$contrasena=md5($_POST['contrasena'])

// La guardás en la base de datos

luego al momento de hacer login se compara el dato guardado en la base con el dato que
el user ingresa en el campo de texto de la contraseña, obviamente tambien hay que
encriptarlo al vuelo, si coinciden se inicia la sesion sinó NOP.

Saludos
__________________
APRENDE -> VideoTutoriales

Respuesta: Como encriptar contraseñas con MD5 en PHP??

El manual es muy bueno, pero no entiendo mucho de programación.

Este es mi archivo de Funciones.

Código PHP:
<?php

function limitatexto( $texto, $limite ) 
  { 
    if( strlen($texto)>$limite ) 
      { 
        $texto = substr( $texto,0,$limite ); 
      } 
    return $texto; 
 
  } 
function mostrarTemplate($tema, $variables)
{
    //var_dump($variables);
    extract($variables);
    eval("?>".$tema."<?");
}

function parsearTags($mensaje)
{
    $mensaje = str_replace("[citar]", "<blockquote><hr width='100%' size
='2'>", $mensaje);
    $mensaje = str_replace("[/citar]", "<hr width='100%' size='2'></bloc
kquote>", $mensaje);
    return $mensaje;
}

// funcion para validar email
function ValidaMail($pMail) {
    if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@+([_a-zA-Z0-9-]+\.)*[a-
zA-Z0-9-]{2,200}\.[a-zA-Z]{2,6}$", $pMail ) ) {
       return true;
    } else {
echo "Inserte un E-mail valido"; exit();
    }
}

// minimo de carateres
function minimo($contenido) {

if (strlen($contenido) < 3) {

echo "Su nombre de usuario debe contene almenos 3 caracteres";include('f
ooter.php'); exit();

} else {

// echo "todo bien...";
return $contenido;
}  
}

function minimopass($contenido) {

if (strlen($contenido) < 6) {

echo "Su contraseña debe tener al menos 6 caracteres";include('footer.ph
p'); exit();

} else {
// echo "todo bien...";
return $contenido;
}  
}

// funcion para sanitizar variables
function limpiar($mensaje)
{
$mensaje = htmlentities(stripslashes(trim($mensaje)));
$mensaje = str_replace("'"," ",$mensaje);
$mensaje = str_replace(";"," ",$mensaje);
$mensaje = str_replace("$"," ",$mensaje);
return $mensaje;
}

function shout($nombre_usuario){
   if (ereg("^[a-zA-Z0-9\-_]{3,20}$", $nombre_usuario)) {
//      echo "El campo $nombre_usuario es correcto<br>";
      return $nombre_usuario;
   } else {
       echo "The Field $nombre_usuario is not valid<br>";include('footer
.php');
exit();
   }

// universal cleaner function

function uc($mensaje)
{

   if (ereg("^[a-zA-Z0-9\-_]{3,20}$", $mensaje)) {
//      echo "El campo $mensaje es correcto<br>";
$mensaje = htmlentities(stripslashes(strtolower(trim($mensaje))));
$mensaje = str_replace("'"," ",$mensaje);
$mensaje = str_replace(";"," ",$mensaje);
$mensaje = str_replace("$"," ",$mensaje);
return $mensaje;
   } else {
       echo "The Field $mensaje is not Valid<br>";include('footer.php');

exit();
   }

}
//funcion para añadir smylies

function caretos($texto,$ruta)
{
    $i="<img src=\"$ruta/";
    $i_="\" >";
    $texto=str_replace(":)",$i."icon_smile.gif".$i_,$texto);
    $texto=str_replace(":D",$i."icon_biggrin.gif".$i_,$texto);
    $texto=str_replace("^^",$i."icon_cheesygrin.gif".$i_,$texto);

    $texto=str_replace("xD",$i."icon_lol.gif".$i_,$texto);
    $texto=str_replace("XD",$i."icon_lol.gif".$i_,$texto);

    $texto=str_replace(":|",$i."icon_neutral.gif".$i_,$texto);
    $texto=str_replace(":(",$i."icon_sad.gif".$i_,$texto);
    $texto=str_replace(":'(",$i."icon_cry.gif".$i_,$texto);
    $texto=str_replace(":O",$i."icon_surprised.gif".$i_,$texto);    
    $texto=str_replace("B)",$i."icon_cool.gif".$i_,$texto);
    $texto=str_replace("8|",$i."icon_rolleyes.gif".$i_,$texto);
    $texto=str_replace("O_O",$i."icon_eek.gif".$i_,$texto);
    $texto=str_replace(":P",$i."icon_razz.gif".$i_,$texto);
    $texto=str_replace(":?",$i."icon_confused.gif".$i_,$texto);
    $texto=str_replace("^:@",$i."icon_evil.gif".$i_,$texto);
    $texto=str_replace("^_-",$i."icon_frown.gif".$i_,$texto);
    $texto=str_replace("!(",$i."icon_mad.gif".$i_,$texto);
    $texto=str_replace("^)",$i."icon_twisted.gif".$i_,$texto);
    $texto=str_replace(";)",$i."icon_wink.gif".$i_,$texto);
    $texto=str_replace(":B",$i."drool.gif".$i_,$texto);
    return $texto;
}

// ip real
function getRealIP()
{
   
   if( $_SERVER['HTTP_X_FORWARDED_FOR'] != '' )
   {
      $client_ip =
         ( !empty($_SERVER['REMOTE_ADDR']) ) ?
            $_SERVER['REMOTE_ADDR']
            :
            ( ( !empty($_ENV['REMOTE_ADDR']) ) ?
               $_ENV['REMOTE_ADDR']
               :
               "unknown" );
   
      // los proxys van añadiendo al final de esta cabecera
      // las direcciones ip que van "ocultando". Para localizar la ip re
al
      // del usuario se comienza a mirar por el principio hasta encontra
r
      // una dirección ip que no sea del rango privado. En caso de no
      // encontrarse ninguna se toma como valor el REMOTE_ADDR
   
      $entries = split('[, ]', $_SERVER['HTTP_X_FORWARDED_FOR']);
   
      reset($entries);
      while (list(, $entry) = each($entries))
      {
         $entry = trim($entry);
         if ( preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", $entry, 
$ip_list) )
         {
            // http://www.faqs.org/rfcs/rfc1918.html
            $private_ip = array(
                  '/^0\./',
                  '/^127\.0\.0\.1/',
                  '/^192\.168\..*/',
                  '/^172\.((1[6-9])|(2[0-9])|(3[0-1]))\..*/',
                  '/^10\..*/');
   
            $found_ip = preg_replace($private_ip, $client_ip, $ip_list[1
]);
   
            if ($client_ip != $found_ip)
            {
               $client_ip = $found_ip;
               break;
            }
         }
      }
   }
   else
   {
      $client_ip =
         ( !empty($_SERVER['REMOTE_ADDR']) ) ?
            $_SERVER['REMOTE_ADDR']
            :
            ( ( !empty($_ENV['REMOTE_ADDR']) ) ?
               $_ENV['REMOTE_ADDR']
               :
               "unknown" );
   }
   
   return $client_ip;
   
}

?>

Donde deberia indicar el encripotamiento??

Respuesta: Como encriptar contraseñas con MD5 en PHP??

Creo que por aca:


Código PHP:
function minimopass($contenido) {

if (strlen($contenido) < 6) {

echo "Su contraseña debe tener al menos 6 caracteres";include('footer.ph
p'); exit();

} else {

// echo "todo bien...";

return md5($contenido);

}  

__________________
APRENDE -> VideoTutoriales

Respuesta: Como encriptar contraseñas con MD5 en PHP??

Cita:
Iniciado por shamaka
Donde deberia indicar el encripotamiento??
Me huele a grito...
Ademas, en el manual esta bien explicado, supongo que el resto te queda a ti (determinar
donde va cada md5())
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies

Respuesta: Como encriptar contraseñas con MD5 en PHP??

Ok hermano, estudiare mejor el manual, otra cosa. Si quisiera verificar que las
contraseñas se están encriptando, es decir, para saber que he hecho todo bien, que debo
hacer. Ay alguna forma de saber que esta funcionado bien lo que he hecho.

Respuesta: Como encriptar contraseñas con MD5 en PHP??

Si, entrar a la base de datos y ver que paso


__________________
APRENDE -> VideoTutoriales

Respuesta: Como encriptar contraseñas con MD5 en PHP??

Eso, entrar a la DB y ver en la tabla si lo que pretendes encriptar esta en 32 caracteres al


azar
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #12 (permalink)  
24/11/2010, 20:40
Fecha de Ingreso: noviembre-2010
Mensajes: 84
shamaka  
Antigüedad: 2 años, 5 meses
Puntos: 7
Respuesta: Como encriptar contraseñas con MD5 en PHP??

Cita:
Iniciado por truman_truman
Si, entrar a la base de datos y ver que paso

Bien hermano muchas Gracias a todos, fueron de mucha ayuda! Ahora me pondré a
estudiar mejor el manual para ver si mañana puedo encriptar mis contraseñas.

LatinBux esta a sus ordenes.

Hasta luego.
  #13 (permalink)  
24/11/2010, 20:44
Sourcegeek   Fecha de Ingreso: mayo-2009
Colaborador Ubicación: $mex['B.C.'];
Mensajes: 1.821
Antigüedad: 3 años, 11 meses
Puntos: 319
Respuesta: Como encriptar contraseñas con MD5 en PHP??

Por ultimo, si lo que quieres es encriptar para un login, al tratar de iniciar sesion tienes
que hacer algo asi;

Código PHP:
if (md5($_POST['pass']) == $campo_enviado_del_form) {
//Pass correcta...
}else{
//Pass incorrecta

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #14 (permalink)  
24/11/2010, 20:51
Fecha de Ingreso: noviembre-2010
Mensajes: 84
shamaka  
Antigüedad: 2 años, 5 meses
Puntos: 7
Respuesta: Como encriptar contraseñas con MD5 en PHP??

Cita:
Iniciado por Sourcegeek
Por ultimo, si lo que quieres es encriptar para un login, al tratar de iniciar sesion tienes
que hacer algo asi;

Código PHP:
if (md5($_POST['pass']) == $campo_enviado_del_form) {
//Pass correcta...
}else{
//Pass incorrecta

Saludos!

Bien por ejemplo este es parte mi archivo login. (El primero es el original. El segundo lo
he modificado.)

Código PHP:
require('funciones.php');
$username=uc($_POST['username']);
$password=uc($_POST['password']);
if ($password==NULL) {
echo "La password no fue enviada";
}else{
require('config.php');
$query = mysql_query("SELECT username,password FROM tb_users WHERE usern
ame = '$username'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['password'] != $password) {
echo "Login incorrecto" 

Código PHP:
require('funciones.php');
$username=uc($_POST['username']);
$password=uc($_POST['password']);

if (md5 $password==NULL) {
echo "La password no fue enviada";
}else{
require('config.php');
$query = mysql_query("SELECT username,password FROM tb_users WHERE usern
ame = '$username'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['password'] != $password) {
echo "Login incorrecto"; 

Esta bien así?


  #15 (permalink)  
24/11/2010, 20:55
Fecha de Ingreso: febrero-2010
Ubicación: C:\xampp\htdocs
truman_truman   Mensajes: 1.257
Antigüedad: 3 años, 2 meses
Puntos: 162
Respuesta: Como encriptar contraseñas con MD5 en PHP??

esto no vá :

if (md5 $password==NULL) {

tendría que ir por aca:

$password=uc($_POST['password']);
$password=md5($password);
__________________
APRENDE -> VideoTutoriales
  #16 (permalink)  
24/11/2010, 20:59
Fecha de Ingreso: noviembre-2010
Mensajes: 84
shamaka  
Antigüedad: 2 años, 5 meses
Puntos: 7
Respuesta: Como encriptar contraseñas con MD5 en PHP??

Entendido. =) Esto quiere decir que estoy encriptando mi Login? Bueno lo probare!
Luego les cuento como va.
  #17 (permalink)  
24/11/2010, 21:05
Fecha de Ingreso: noviembre-2010
Mensajes: 84
shamaka  
Antigüedad: 2 años, 5 meses
Puntos: 7
Respuesta: Como encriptar contraseñas con MD5 en PHP??

Ya lo he hecho, ahora cuando pongo mi pass me dice que es incorrecto. Que debo hacer?

Respuesta: Como encriptar contraseñas con MD5 en PHP??

Cita:
Iniciado por truman_truman
$password=uc($_POST['password']);
$password=md5($password);
¿pero saben que tiene todo esto de malo?

Código PHP:
echo md5(''); // d41d8cd98f00b204e9800998ecf8427e 

si se fijan aún un valor nulo o vacío genera una cadena MD5 valida, por lo cual no tendría
caso la seguridad...

el proceso debería ser mas lógico y limpio:


Código PHP:
$pass = ! empty($_POST['pass'])? $_POST['pass']: FALSE;

if ($pass !== FALSE)
{
  $pass_md5 = md5(uc($pass));
  $sql = "SELECT * FROM usuarios WHERE pass = '$pass_md5'";

Edito: bueno, la explicación es sencilla... realizar la consulta siempre y cuando la entrada
de datos sea correcta!!

You might also like