--@version 1.0 2016-11-17
--@description: sql server 2008 aes128位對稱密鑰對數據列加密與解密
--@symmetric:MySymmetric
--@author:釘牙的大白兔
use test;
--創建密鑰加密密鑰MySymmetric
create symmetric key MySymmetric with algorithm = aes_128 encryption by password='Hello';
--將要加密的字段轉化爲varbinary類型,存儲密文
select Sno,
Sname_Encrypt=CONVERT(varbinary(max),Sname),
Ssex,
Sdept
into Student_Encrypt
from student
where 1<>1;
--打開密鑰並進行加密
open symmetric key MySymmetric decryption by password='Hello';
--複製一張表
insert Student_Encrypt(
Sno,
Sname_Encrypt,
Ssex,
Sdept
)
select top 5
Sno,
Sname_Encrypt=ENCRYPTBYKEY(KEY_GUID('MySymmetric'),Sname),
Ssex,
Sdept
from Student;
select * from Student_Encrypt;
加密後的數據庫信息:
--打開密鑰並進行解密
open symmetric key MySymmetric decryption by password='Hello';
select Sno,
Sname=CONVERT(nvarchar(max),DECRYPTBYKEY(Sname_Encrypt)),
Ssex,
Sdept
from Student_Encrypt;
解密後的數據庫: