Bibliotecas para encriptar contraseñas en PHP

Bibliotecas-para-encriptar-contraseñas-en-PHP

La criptografía es uno de los temas mas ampliamente que se debe tratar solo por los expertos, ya que he visto muchos tutoriales  que abundan en las paginas web como crear nuestros propios hashing más comunes en md5() y sha1() para almacenar contraseñas, la cual es muy mala práctica.

MD5, SHA1 o SHA256 son algoritmos para ser muy rápidos y eficientes, sin embargo utilizando técnicas y equipos modernos han demostrado que es muy fácil extraer por fuerza bruta la salida de estos algoritmos. Por tal razón los expertos de seguridad  no recomiendan el uso de estos algoritmos. Pero quizá alguno de vosotros  se pregunta como es que se puede violentar, veamos un sencillo ejemplo :

Al copiar la salida de la contraseña encriptada en la siguientes pagina web: md5onlinemd5cracker , usted vera que la contraseña sera revelada.

En los siguientes párrafos se recomienda usar bibliotecas para encriptar contraseñas en PHP ya probados y usados en las aplicaciones web mas conocidos, en vez de estar utilizando MD5, SHA1,  SHA256 o otros métodos de encriptacion  desconocidos hechos por terceros. Otra opción seria estudiar criptografia hasta tener la habilidad suficiente y avanzada, por el cual puede partir desde esta página hash de contraseñas seguro.

PHPASS

Es una de las bibliotecas para encriptar contraseñas en PHP  diseñado por Solar Designerpermite generar hashes utilizando el algoritmo más seguro para implementar en nuestros sistemas de logeo y demás. La clase puede soportar la versión de PHP 5.3 o superiores, para saber mas sobre esta clase phpass puede visitar la siguiente pagina donde encontrara sobre hashing de la clave con phpass  y así como también administración de usuarios y contraseñas.

En el siguiente ejemplo mostraremos como usar esta clase, en nuestro proyecto.

PHP-PasswordLib

Es una de las bibliotecas para encriptar contraseñas en PHP, para generar hashing automáticamente  con unos cuantos lineas de código,  soporta desde la versión PHP 5.3.2 o superior. Algunas de las características que mencionan son: portabilidad, probado, extensible, fácil de usar y entre otros. Para ser implementado  en nuestros proyectos descargar desde GitHub y mas información.

He aquí un ejemplo como generar el hash.

Passwordcompat

Passwordcompat es una biblioteca que permite generar hashing, y que permite el uso fácil sobre metodo crypt() de php 5.5.0 para hacer sencilla la creación y administración de contraseñas de una forma segura. Para usar esta biblioteca se debe tener instalado PHP 5.3.7 o superior, por lo contrario tendría problemas de ejecución.

A continuación se muestra como usar la librería.

php encryption

php encryption es una biblioteca para la incriptaciòn de datos como: Cifrado y descifrado de cadenas, cifrado y descifrado de archivos y demas. , soporta desde PHP 5.4 o posterior, esta biblioteca fue diseñado por autores Taylor Hornby y de Scott Arciszewski ,ya que crearon esta biblioteca para que sea mas seguro y fácil de usar, se quiere saber mas información sobre esta biblioteca visitar esta pagina prácticamente es un tutorial como se debe utilizarlo.

En los primeros párrafos hemos visto como utilizar las tres librerías, pero seria posible generar hashing  de forma aleatorio es decir  al azar utilizaría uno de las clases para generar la clave y luego seria guardado en la base de datos.

He aquí el ejemplo:

Para verificar la clave se utilizaría los métodos CheckPassword, verifyPasswordHash y password_verify lo cual es muy simple de escribir. Quizá también usted conozca otras bibliotecas para encriptar contraseñas en PHP puede sugerir en el pie de este articulo.

Por ultimo es muy importante siempre que se hagan testing  a nuestros aplicaciones web, de esa forma nos aseguramos la buena practica.

Comments

  1. By maikiavel

    Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.