jueves, 14 de junio de 2012

Finalmente, estoy contento con un modo de 'encriptar' o 'hashear' valores privados para ser guardados en una base de datos a través de PHP.

  1. Limpiar la Password de inyecciones SQL con mysql_escape_string u otros métodos que creas convenientes.
  2. Definir un Salt, a través de una función (en mi caso, con letras en mayúscula, minúscula, números y cuatro símbolos) o tener uno ya predeterminado en el archivo de PHP.
  3. Hashear por separado Password y Salt con hash('sha512,$string). De ese modo, estamos utilizando una de las mejores técnicas de hasheo que existen, generando unos jugosos 128 caracteres.
  4. Concatenamos de este modo: salt + pass + salt. Nos quedan 384 caracteres. Y no, no vamos a meter todos esos caracteres en la base de datos.
  5. Hasheamos por ultima vez la suma de las tres variables de este modo: hash('crc32',$final). El objetivo de este ultimo hasheo no es hacer la string final mas segura, sinó acortar el tamaño de la misma. Y vaya si lo hemos aconseguido! De 384 a 8 caracteres, siendo la contraseña igual de segura!

A disfrutar!

Fatal. Qué horror. Espero que nadie haya seguido eso. ÉSTO es lo que se debe hacer, encriptación en una sola dirección, con la magnífica librería PHPASS.

No hay comentarios:

Publicar un comentario