Encriptación segura de claves en PHP con la clase phpass

Si algo es importante es tener varias capas de seguridad en nuestras aplicaciones web. Hace poco un cliente nos preguntaba si era seguro guardar las contraseñas en MD5 O SHA1, nuestra respuesta fue rotunda !no!. Desde hace mucho tiempo no se recomienda este método de encriptación por un motivo muy sencillo, por ejemplo  MD5  es un método que se considera a día de hoy y desde hace bastante años como “roto”, por lo tanto no recomendamos el uso del mismo para encriptar nuestras contraseñas.

Con este objetivo, Solar Designer creó una clase bastante sencilla de utilizar llamada Portable PHP password hashing framework o phpass. Phpass nos permite generar hashes utilizando el algoritmo más seguro al que nuestro sistema tenga acceso. En la nueva versión (0.3) se intenta hacer uso de la función bcrypt  basada en un cifrado Blowfish.

Con PHP 5.3.x podemos estar seguros de que se utilizará el cifrado Blowfish aunque en versiones anteriores esto no es seguro. Por esto es imprescindible usar versiones de php actualizadas entro otros muchos motivos.

La ventaja de usar phpass es que nos olvidamos de todos los asuntos técnicos ya que lo hará por nosotros. Utilizar esta clase es muy sencillo.

Comenzamos con el siguiente código

<?php
require_once “PasswordHash.php”;

// Creamos el objeto que nos permitirá gestionar nuestro hash
$hasher = new PasswordHash(8, FALSE);

// Generamos el hash
$laClave = ‘qwerty’;
$hash = $hasher->HashPassword($laClave);

// Comprobación de credenciales
if ($hasher->CheckPassword(‘qwerty’, $hash)) {
echo “CLAVE CORRECTA”;
} else {
echo “CLAVE INCORRECTA”;
}

Para comprobar y verificar nuestras contraseña haremos uso del método CheckPassword() al cual le pasaremos la contraseña recibida, y en el caso de que sea correcta, nos devolverá un TRUE.

Desde Hispamax recomendamos el uso de esta clase, y hacemos una llamada a todos los programadores para poner interés en aumentar la seguridad de sus aplicaciones web dado el alto incremento de ataques web que hay en la actualidad.