SQL Server 数据库对称加密

--@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;

解密后的数据库:

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值