Servidor Couchbase

Almacenamiento seguro de contraseñas en Couchbase con Golang y BCrypt

Cuando escribes aplicaciones web que almacenan contraseñas para tus usuarios, nunca es una buena idea almacenarlas como texto plano en tu base de datos, ya sea NoSQL o RDBMS. El año pasado escribí sobre usando BCrypt con Node.js y Couchbase así como usando BCrypt con Java y Couchbase. ¿Y si quisiéramos llevar esto a Golang?

Vamos a ver cómo hash contraseñas en una aplicación Golang utilizando BCrypt para almacenarlos de forma segura en Couchbase.

Para dejar las cosas claras, nos interesa el hash de contraseñas, no el cifrado de contraseñas, porque el cifrado implica que el descifrado es posible. El hashing es un proceso unidireccional.

Lo bueno de Go es que hay un a BCrypt incorporado. Cuando uses este paquete o hagas cualquier cosa relacionada con BCrypt, te vas a centrar en dos funciones. La generación de un hash y la comparación o validación de un hash.

En Go, podrías generar un nuevo hash basado en tu cadena de contraseñas como el siguiente:

Utilización de la GenerarDesdeContraseña se pasa una cadena y un valor de coste. Cuanto mayor sea el valor de coste, más lenta será la función, ya que el valor de coste es el número de veces que se aplica el hash.

Si alguna vez quisieras ver si una contraseña en texto plano coincide con una contraseña hash, podrías ejecutar lo siguiente:

Si no se produce ningún error, las contraseñas coinciden.

¿Cómo se puede utilizar esta función de hash de contraseñas con Couchbase?

Tomemos como ejemplo lo siguiente:

El anterior es un ejemplo muy burdo, pero sirve para entender cómo se podría almacenar la contraseña BCrypt y cómo compararla con ella.

Conclusión

Acabas de ver cómo usar BCrypt en una aplicación Golang. Es fundamental que la información sensible, como las contraseñas, se hash antes de que terminen en su base de datos, ya sea NoSQL o cualquier otra cosa.

Para obtener más información sobre el uso de Couchbase con Golang, consulte el documento Portal para desarrolladores de Couchbase.

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Nic Raboy, Defensor del Desarrollador, Couchbase

Nic Raboy es un defensor de las tecnologías modernas de desarrollo web y móvil. Tiene experiencia en Java, JavaScript, Golang y una variedad de frameworks como Angular, NativeScript y Apache Cordova. Nic escribe sobre sus experiencias de desarrollo relacionadas con hacer el desarrollo web y móvil más fácil de entender.

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.