Cómo encriptar una contraseña

Un desarrollador siempre busca brindar buena seguridad a los consumidores de sus plataformas.
Un desarrollador siempre busca brindar buena seguridad a los consumidores de sus plataformas.
Rawpixel
Un desarrollador siempre busca brindar buena seguridad a los consumidores de sus plataformas.

Internet ha supuesto un gran cambio en la vida de muchos usuarios, ya que la mayoría almacena multitud de datos importantes en la nube. Al confiar cada vez más en los servidores de la red, debemos tratar de conocer los métodos que existen para protegerlos e impedir que quebranten nuestra privacidad.

Una solución para asegurar la información que guardamos en la web es encriptarla con contraseñas. Consiste en aplicar un algoritmo asociado a una o varias contraseñas que convierten la información en una cadena de letras, números y símbolos sin aparente sentido.

Cuando un desarrollador crea una plataforma, lo más normal es que busque que esta sea segura para sus usuarios. Para ello, la encriptación de las contraseñas es importante. Antes era común que se usasen MD5 o SHA-1, pero ahora existen versiones más modernas como SHA-256 o SHA-512. No obstante, estos algoritmos no fueron pensados para la encriptación de contraseñas y no deberían emplearse para dicho fin.

Los cifrados SHA son irreversibles, por lo que el tiempo de cifrado es demasiado corto y un ciberdelincuente con un hash y una buena GPU podría hacer cientos de millones de combinaciones por hora. Es decir, tendría bastantes posibilidades de dar con la contraseña correcta.

Lo recomendable es utilizar algoritmos de cifrado lento, que se diseñaron justo para cifrar contraseñas. Estos son los PBKDF (Password-based key derivation function) y un ejemplo de este tipo de algoritmos es ‘bcrypt’. Este puede insertarse en varios lenguajes de programación, pero a continuación mostraremos cómo hacerlo en Node.

Implementar bcrypt en Node

  • Inicia un proyecto nuevo. 
  • Crea el archivo ‘bcrypt-test.js’. 
  • Al ejecutarlo, verás el output. 
  • Con la función hashSync() transforma en input a hash y con la función compareSync() comprueba que un input, hasheado, corresponda al hash que se genera con hashSync().

Apúntate a nuestra newsletter y recibe en tu correo las últimas noticias sobre tecnología.

Mostrar comentarios

Códigos Descuento