--Criar master
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '314159265359'
GO
--Criar certificado
CREATE CERTIFICATE [CertificadoT1] WITH SUBJECT = 'CERTIFICADO teste1', EXPIRY_DATE = '9999/12/31 23:59:59.997'
GO
--Criar chave
CREATE SYMMETRIC KEY ChaveT1 WITH ALGORITHM = AES_256 ENCRYPTION BY CERTIFICATE [CertificadoT1];
GO
--adiciona o campo varbinary na tabela para gravar o criptografado
ALTER TABLE [dbo].[tab01] ADD senha varbinary(256);
---inserindo o valor criptografado
-- Abro a chave
OPEN SYMMETRIC KEY ChaveT1 DECRYPTION BY CERTIFICATE [CertificadoT1];
---Pego o guid da chave
DECLARE @GUID UNIQUEIDENTIFIER = (SELECT KEY_GUID('ChaveT1'))
--insiro na base o valor criptografado
insert into [dbo].tab01
values(3,'testeCertificadoT1',ENCRYPTBYKEY(@GUID, 'xxxxxteste123'))
--fecho a chave do sistema
CLOSE SYMMETRIC KEY ChaveT1
---lendo o valor criptografado
OPEN SYMMETRIC KEY ChaveT1 DECRYPTION BY CERTIFICATE [CertificadoT1];
SELECT
cod,
nome,
CONVERT(varchar, DecryptByKey(senha)) senha
FROM [dbo].[tab01]
CLOSE SYMMETRIC KEY ChaveT1
---Salvando o certificado para exportar
BACKUP CERTIFICATE [CertificadoT1]
TO FILE = 'C:\certificacao\CertificadoT1.CER'
WITH PRIVATE KEY (FILE = 'C:\certificacao\ChaveT1.PVK',
ENCRYPTION BY PASSWORD = '16180')
Top comments (0)