En este post vamos a aprender a instalar y utilizar la librería de BCrypt en nuestros proyectos de C#.

Para comenzar vamos a crear un proyecto nuevo, en este caso el siguiente tipo:

Tipo de proyecto en Visual Studio

Una vez generado el nuevo proyecto, vamos a instalar las librerías necesarias para trabajar con SQL Server y acercarnos con ello a una experiencia más realista a la hora de encriptar datos con BCrypt.

Instalaremos los Nuget de Entity Framework y EF SQL Server, aparte de la librería necesaria para el post, BCrypt:

Librerías necesarias para proceder en el tutorial

A continuación, vamos a generar una tabla USERS en nuestra base de datos SQL Server. Cabe destacar que el número de campos dependerá de la escalabilidad de nuestra aplicación. En nuestro caso crearemos una tabla con solo 3 campos para proceder:

Tabla de USERS

Para poder realizar nuestras conexiones a la base de datos, vamos a crear un Context y un Repository. Pero antes de poder hacerlo, tenemos que mapear nuestro modelo de la tabla en la aplicación:

Modelo de USERS

Ahora si, crearemos el Context:

Application Context

Y para nuestro repositorio, crearemos varios métodos entre ellos incluído uno para crear un User. Este método tendrá el primer uso de BCrypt: hashear la contraseña. Para ello utilizaremos:

BCrypt.Net.BCrypt.HashPassword(string a hashear)

Application Repository

Y para finalizar la parte de código, crearemos un Controller para gestionar los registros y los logins. En el action del login, utilizaremos el otro recurso de BCrypt para verificar que el primer parámetro (el dato sin encriptar) coincida con el segundo parámetro (dato encriptado):

Controller

Con todo esto, podremos encriptar y verificar datos, ya sean contraseñas u otro tipo de datos con carácter secreto en nuestras aplicaciones basadas en C#.

En el siguiente enlace podéis encontrar el repositorio de Github donde se encuentra mi proyecto para echarle un vistazo al código: https://github.com/nihilistBlves/PostMvcCoreAlejoPerez.git

Autor/a: Alejo Pérez Benayas
Curso: Desarrollo Web Full Stack, MultiCloud y Multiplataforma
Centro: Tajamar
Año académico: 2021-2022

Leave a Comment

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.