Codificar contraseñas con md5()

La función md5() es un algoritmo que permite calcular el hash exacto de una cadena, devolviendo un valor compuesto por números y letras de 32 caracteres.

Veamos un pequeño ejemplo de cómo trabaja la función:

<?
$password_original = "argen27";
$password_codificado = md5($password);

echo "Password original: " . $password_original;
echo "<br>Password codificado: " . $password_codificado;
?>

El resultado de la ejecución de este script sería:

Password: argen27
Password codificado: 4c1faf913420788dfeaceb52a789342f

A continuación veremos un ejemplo de un simple sistema de login en donde utilizamos la codificación md5 para chequear si la contraseña ingresada.

Sistema de login

Armamos un formulario sencillo, con dos casillas, una para ingresar el nombre de usuario y el otro la contraseña.

formulario.htm

<HTML>
<HEAD>
<TITLE>Codificación md5</TITLE>
</HEAD>
<BODY>
<FORM METHOD="POST" ACTION="md5.php">
Usuario: <INPUT TYPE="text" NAME="usuario"><br>
Contraseña: <INPUT TYPE="text" NAME="password"><br>
<INPUT TYPE="submit">
</FORM>
</BODY>
</HTML>

Cuando el usuario ingresa los datos y envía el formulario, la página md5.php entra en acción:

md5.php

<HTML>
<HEAD>
<TITLE>Codificación md5</TITLE>
</HEAD>
<BODY>
<?
// Datos para loguearse
$d_usuario = "administrador";
$d_password = "4c1faf913420788dfeaceb52a789342f";

// Codificamos el password ingresado
$password_cod = md5($password);

// Comparamos el nombre de usuario
// Y también comparamos el password ya codificado

if (($usuario==$d_usuario) && ($password_cod==$d_password))
{
    echo "Acceso permitido!";
}
else
{
    echo "Acceso no permitido!";
}
?>
</BODY>
</HTML>

En la variable $d_password tenemos la contraseña codificado en un hash. Con la función md5() se codifica el password ingresado por el usuario, y luego se realiza una comparación de igualdad entre ambas contraseñas codificadas ($password_cod==$d_password).

Pueden ver el ejemplo del sistema de login funcionando haciendo click aquí (el nombre de usuario es "administrador" y el password "argen27").

Deja un comentario

  • Juan Pablo Carrillo Talero

    Hola,

    Tengo una cuenta en pasarela pagos payulatam. Para integrar me piden codificar contenido de unas variables en MD5 y me dan el ejemplo, sin embargo el resultado de la codificación
    mia es diferente a la que ellos envían…desde luego la mia la toma como
    invalida.

    Este es el ejemplo de ellos y que si funciona

    merchantId: 500238

    ApiKey: 6u39nqhq8ftd0hlvnjfs66eh8c

    referenceCode: TestPayU

    amount: 3

    currency: USD

    accountId: 500537

    buyerEmail: [email protected]

    Me dicen que debo codificar estos campos

    “ApiKey~merchantId~referenceCode~amount~currency”.

    La firma sería según el ejemplo:

    “6u39nqhq8ftd0hlvnjfs66eh8c~500238~TestPayU~3~USD”

    A esta firma se
    le aplica el MD5 y debería quedar asi:

    “be2f083cb3391c84fdf5fd6176801278”

    Yo
    he creado el código de la siguiente manera, según las indicaciones
    suministradas

    El
    resultado de la codificación MD5 o firma que me muestra es:

    “11640c6e82078e4d9b0e1ebc07a29709”,
    la cual es diferente a la que ellos dicen debe dar para esos campos y que es “be2f083cb3391c84fdf5fd6176801278”

    Puede usted ayudarme?