-- Option 1
-- add varbinary field to table
ALTER TABLE [dbo].[enc_test]
ADD encryptedCol varbinary(128);
GO
-- Create cert
CREATE CERTIFICATE testCert01
WITH SUBJECT = 'Test',
EXPIRY_DATE = '20251031';
GO
-- Create key
CREATE SYMMETRIC KEY testKey01
WITH ALGORITHM = AES_256
ENCRYPTION BY CERTIFICATE testCert01;
GO
-- Update table with encrypted value
OPEN SYMMETRIC KEY testKey01
DECRYPTION BY CERTIFICATE testCert01;
UPDATE [dbo].[enc_test]
SET encryptedCol
= EncryptByKey(Key_GUID('testKey01'), 'plain text test');
GO
-- view Encrypted Column
SELECT * FROM [dbo].[enc_test];
-- View Decrypted Column
OPEN SYMMETRIC KEY testKey01
DECRYPTION BY CERTIFICATE testCert01;
SELECT *, Convert(varchar, (DECRYPTBYKEY(encryptedCol)))
FROM [dbo].[enc_test];
-- Option 2 (include cert level pw)
-- add varbinary field to table
ALTER TABLE [dbo].[enc_test]
ADD encryptedCol varbinary(128);
GO
-- Create PW protected cert
CREATE CERTIFICATE testCert01
ENCRYPTION BY PASSWORD = 'pGFD4bb925DGvbd2439587y'
WITH SUBJECT = 'Test',
EXPIRY_DATE = '20251031';
GO
-- Create KEY
CREATE SYMMETRIC KEY testKey01
WITH ALGORITHM = AES_256
ENCRYPTION BY CERTIFICATE testCert01;
GO
-- Update table with encrypted value
OPEN SYMMETRIC KEY testKey01
DECRYPTION BY CERTIFICATE testCert01 WITH PASSWORD = 'pGFD4bb925DGvbd2439587y';
UPDATE [dbo].[enc_test]
SET encryptedCol
= EncryptByKey(Key_GUID('testKey01'), 'plain text test');
GO
-- view Encrypted Column
SELECT * FROM [dbo].[enc_test];
-- View Decrypted Column
OPEN SYMMETRIC KEY testKey01
DECRYPTION BY CERTIFICATE testCert01 WITH PASSWORD = 'pGFD4bb925DGvbd2439587y';
SELECT *, Convert(varchar, (DECRYPTBYKEY(encryptedCol)))
FROM [dbo].[enc_test];