2014等版本,觉得对基础数据的加密采用对称策略是比较好的。
--创建对称密钥(比较适合大数据量,过程耗用资源较少)
create symmetric key Symkey_1
with algorithm = AES_256 --使用des加密算法
encryption by password='password@1'; --密码
--加密前,需要先打开open symmetric key。否则所产生的数据都是null值。
open symmetric key Symkey_1 decryption by password='password@1';
--对称密钥加密数据
--如对表t2做insert时,使用EncryptByKey加密数据
insert t2(name,password)
select '张三',encryptbykey(key_guid(N'Symkey_1'),N'123456')
insert t2(name,password)
select '李四',encryptbykey(key_guid(N'Symkey_1'),N'abcdefg')
--对数据加密后,无法直接看到原始内容
select *from t2;
--解密过程同样需要open symmetric key
open symmetric key Symkey_1 decryption by password = 'password@1';
--解密使用DecryptByKey和convert函数
select id, name,
convert(nvarchar(max), decryptByKey(password)) as AsymKey_1
from t2;