在SQL2005中利用密钥对数据进行加密

    首先要声明的是这种方法只在2005中才有的特性,且加加密方法有多种,这里只介绍我学习中的一种总结:主据库主密钥加密证书,证书加密对称密钥,再加密数据。方法如下:


一:创建数据库主密钥

create master key encryption by password='12345'

二:创建证书

create certificate hucret with subject='hu cretificate',expiry_date='10/10/2009'

三:创建对称密钥

create symmetric key husym with algorithm=desx encryption by certificate hucert

这时你就可以对你的表进行写入或查询记录了。

一:创建表

create table testa(data nvarchar(50))

二:写入加密记录

open symmetric key husym decryption by certificate hucert

insert into testa values(encryptbykey(key_guid('husym'),N'123abc'))

close symmetric key husym

三:查询

open symmetric key husym decryption by certificate hucert

select cast(decryptbykey(data) as nvarchar) as data from testa

close symmetric key husym

    个人觉得这用在比如说工资表类似的重要数据上比较好,如在下的公司,工资表就没加密。因人事部经常要用到客户端工具连数据库,明白的人利用抓包工具就可以找到用户名和密码,查看工资表,这样很不安全,如对其加密后,就算是有用户名和密码,他也不知道是用哪个证书,哪个密钥加的密从而查看不了。

当然,你也可以对其做个触发器,从而使客户端开发人员对INSERT或SELECT透明

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值