Índice del contenido[Esconder][Espectáculo]
Nunca debe mantener una contraseña en texto sin formato mientras confirma un usuario o hace algo similar.
Dado que muchas personas usan la misma contraseña, si un atacante descubre una base de datos de contraseñas no cifradas, pueden usarse fácilmente junto con correos electrónicos coincidentes para ingresar al sitio web o cuenta vinculados e incluso para intentar acceder a otras cuentas.
Las contraseñas a menudo se cifran hoy en día cuando se proporciona una contraseña. Se recomienda hacer hash con sal y mantener la sal junto con la contraseña hash.
La salazón puede parecer uno de los pasos en una receta para papas fritas, pero en criptografía, se refiere a agregar datos aleatorios a la entrada de una función hash para garantizar que el hash siempre proporcione un resultado único, incluso si las entradas son idénticas.
Como resultado, el hash distintivo creado al agregar la sal puede defendernos de varios métodos de ataque, incluidos los ataques de tablas hash, mientras reprime los intentos fuera de línea de diccionario y fuerza bruta.
Aquí, con la ayuda de fragmentos de código, demostraremos cómo usar 'bcrypt' para asegurar sus contraseñas.
Entonces, ¿qué es 'bcrypt'?
Bcrypt es una biblioteca hash que admite varios idiomas y proporciona un cifrado de contraseña especial. Para aumentar la seguridad de su contraseña, automáticamente produce caracteres aleatorios adicionales (sal) al cifrar su cadena.
También puede optar por definir cuántos caracteres adicionales desea agregar a una cadena entrante.
La biblioteca bcrypt solo lee código de bytes, no cadenas sin formato. Por lo tanto, antes de enviar una cadena de contraseña entrante a bcrypt para el cifrado, primero debe codificarla.
Cifrar y codificar no son lo mismo. Simplemente se asegura de que una cadena sea legible por máquina antes de ser cubierta por una técnica de encriptación.
Usando bcrypt para cifrar una contraseña en Python
Python simplifica el cifrado de contraseñas de bcrypt. Nos concentraremos en hacer esto sin la ayuda de un marco. Pero no se preocupe, si comprende cómo guardar las entradas de los usuarios y leerlas de la base de datos, el procedimiento es el mismo en los marcos.
Instalación
Solo necesita configurar un entorno virtual de Python y luego utilizar un IDE como PyCharm. La biblioteca debe instalarse primero:
Contraseña de cifrado
Veamos cómo usar bcrypt para cifrar un texto después de haberlo instalado:
El código de Python antes mencionado se ejecuta y genera una cadena de bytes encriptada. Pero cada vez que ejecuta el script, el resultado es diferente. Bcrypt usa este método para asegurarse de que cada usuario tenga una contraseña específicamente encriptada.
Eso, por cierto, es para el cifrado de contraseñas.
Comparación y confirmación de contraseñas con Bcrypt
¿Qué sucede si desea guardar la contraseña codificada y comprobar más tarde si coincide con la contraseña que envió un usuario para la autenticación?
Así de simple. Solo la contraseña de autenticación debe compararse con la entrada de la base de datos (o en la memoria en este caso).
La contraseña de autenticación también debe codificarse antes de compararse con la de la base de datos porque bcrypt solo puede leer cadenas de bytes. Básicamente, comparará una entrada de autenticación codificada con la contraseña hash codificada que tiene actualmente en su base de datos.
Probemos esto usando entradas ficticias de Python:
Al ejecutar el código mencionado anteriormente, se le solicita una nueva contraseña. Python lo guarda en la memoria. En la sección de autenticación, ingresará la misma contraseña, que es privada para usted.
Si se compara la contraseña con la que se cifró previamente y se guardó la coincidencia, Python emite un mensaje de éxito.
De lo contrario, se imprime el mensaje de error y luego se agrega la oración else.
La idea fundamental es idéntica a la de registrarse y luego proporcionar una contraseña a una base de datos para la autenticación.
Conclusión
Aunque simplemente hemos usado contraseñas cifradas para mostrar cómo funciona bcrypt en la memoria corta de Python simple, su aplicabilidad real radica en las aplicaciones basadas en usuarios.
Sin embargo, este artículo demuestra los métodos esenciales para organizar su código para lograr esto, incluso en circunstancias del mundo real.
Por ejemplo, si usa Flask, puede proporcionar los campos de registro y autenticación a través de formularios web separados en lugar de entradas.
Por supuesto, al comparar contraseñas, leerá de una base de datos que contiene contraseñas cifradas que se mantienen en el mundo real.
Jona Nitsch
Gracias por esta sencilla y sencilla explicación,
Esto me ayudó mucho en mi proyecto actual.
Creo que es muy bueno que el código de ejemplo se limite al mínimo y no esté sobrecargado como tantas otras explicaciones.
Atentamente