Como realizar encriptación de los datos en SQL Server : SQL Server Encriptando datos

Cómo utilizar el cifrado de SQL Server con claves simétricas

En esta oportunidad hablaremos de de como pueden encriptar datos de forma rápida y segura en SQL Server 2005 o superior, mediante el uso de la funcionalidad nativa de claves simétricas. Los soportes de cifrado de clave simétrica de los algoritmos de cifrado más comunes son Des, Triple Des, RC4 de 128 bits, AES de 128 bits y AES de 256 bits.

Configuran tu base de datos para encriptando datos

Para crear una clave simétrica, primero debemos configurar nuestra base de datos con una clave maestra y un certificado, que actúen como protectores de nuestro almacén de claves simétricas.

Crear una clave maestra de base de datos CREAR ENCRIPTACIÓN DE TECLA PRINCIPAL POR CONTRASEÑA = ‘myStrongPassword’

 Crea tu clave simétrica

Ahora que hemos configurado nuestra base de datos, podemos agregar la clave simétrica a nuestro certificado. Para garantizar que podamos replicar la clave en otro servidor, o reconstruir la clave si está dañada, debe tener muy en cuenta los parámetros KEY_SOURCE e IDENTITY_VALUE, ya que estos son los que se utilizan para crear la clave.

Create a Symmetric Key

El parámetro IDENTITY_VALUE se usa para generar el guid para la clave y KEY_SOURCE se usa para generar la clave real. Esto le permite ejecutar el código anterior en cualquier servidor tantas veces como quiera, con los mismos valores, para generar exactamente la misma clave.

Elegí AES_256, pero puede elegir entre los siguientes algoritmos de cifrado: DES, TRIPLE_DES, RC2, RC4, RC4_128, DESX, AES_128, AES_192 y AES_256.

Cifrado y descifrado de datos

Finalmente, podemos cifrar y descifrar datos utilizando la clave que acabamos de crear utilizando los siguientes fragmentos de código.

Abre la llave

Antes de que pueda comenzar a cifrar o descifrar datos, primero debe inicializar la clave. Esto se hace con la siguiente pieza de código.

Cifrado de datos

Puede encriptar datos usando la función EncryptByKey, así:


Tenga en cuenta que el resultado del cifrado es de tipo varbinary (256) y si desea almacenar el valor en una columna para usar este tipo.

Descifrar datos

Puede descifrar datos utilizando la función DecryptByKey, así:


Asegúrese de descifrar el mismo tipo que cifró en primer lugar. En mi ejemplo cifré un varchar (max), así que también descifré a varchar (max).

Usar claves simétricas en una función

Debido a que las claves simétricas usan sesiones basadas en el tiempo, no puede abrirlas dentro de una función, sin embargo, puede evitar esto abriendo primero con un Procedimiento almacenado y luego llamando a la función. Aquí hay un ejemplo de la configuración que tengo en marcha.

El procedimiento almacenado OpenKeys

 La funciono para realizar el encriptado 

La funcion para realizar el desencriptado 


 

Ahora podemos realizar una prueba de como enpriptar y desencriptar los datos 


 

 

Deja un comentario

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

LinkedIn Auto Publish Powered By : XYZScripts.com