Saltar al contenido

Cómo descifrar el hash almacenado por bcrypt

Solución:

¡Estás HASHING, no CIFRADO!

¿Cual es la diferencia?

La diferencia es que el hash es una función unidireccional, donde el cifrado es una función bidireccional.

Entonces, ¿cómo puede asegurarse de que la contraseña sea correcta?

Por lo tanto, cuando un usuario envía una contraseña, no descifrar su hash almacenado, en su lugar, realiza lo mismo bcrypt operación en la entrada del usuario y comparar los hashes. Si son idénticos, acepta la autenticación.

¿Debería utilizar hash o cifrar las contraseñas?

Lo que está haciendo ahora (hash de las contraseñas) es correcto. Si simplemente cifrase las contraseñas, una violación de la seguridad de su aplicación podría permitir que un usuario malintencionado aprenda trivialmente todas las contraseñas de los usuarios. Si usa hash (o mejor, salt y hash) las contraseñas, el usuario debe descifrar las contraseñas (lo cual es computacionalmente costoso en bcrypt) para obtener ese conocimiento.

Como sus usuarios probablemente usan sus contraseñas en más de un lugar, esto ayudará a protegerlos.

Simplemente no puedes.

bcrypt usa salazón, de diferentes rondas, yo uso 10 habitualmente.

bcrypt.hash(req.body.password,10,function(error,response){ }

Este 10 está agregando una cadena aleatoria a su contraseña.

Para responder a la pregunta de los carteles originales … para “descifrar” la contraseña, debe hacer lo que haría un descifrador de contraseñas.

En otras palabras, ejecutaría un programa para leer de una gran lista de contraseñas potenciales (un diccionario de contraseñas) y usaría el hash de cada una bcrypt y la sal y la complejidad de la contraseña que estás intentando descifrar. Si tiene suerte, encontrará una coincidencia, pero si la contraseña es segura, es probable que no encuentre una coincidencia.

Bcrypt tiene la característica de seguridad añadida de ser un hash lento. Si su contraseña se hubiera codificado con md5 (una elección terrible), entonces podría verificar miles de millones de contraseñas por segundo, pero ya que se ha codificado con bcrypt podrá comprobar mucho menos por segundo.

El hecho de que bcrypt es lento para hash y salado es lo que lo convierte en una buena opción para el almacenamiento de contraseñas incluso hoy. Dicho eso, creo NIST recomienda el PBKDF2 para el hash de contraseñas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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