鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 网站安全 > 加密解密 > >

T-Sql(八)字段索引和数据加密 - 田园里的蟋蟀 - 博客园

来源:互联网 作者:佚名 时间:2015-09-03 09:44
启动和禁用索引示例代码: 1 alter index all -- 禁用所有的索引 2 on Production.Product 3 disable 4 5 alter index all -- 启用所有的索引 6 on Production.Product 7 rebuild 二,数据加密( certificate , symmetric ) 编程的时候我们有时候会接触到
   启动和禁用索引示例代码:
1 alter index all      --禁用所有的索引
2 on Production.Product
3 disable
4 
5 alter index all      --启用所有的索引
6 on Production.Product
7 rebuild

二,数据加密(certificatesymmetric

  编程的时候我们有时候会接触到数据加密,但那个数据加密是表现在程序上的,数据库的数据加密我们平时会用的很少,除非一些敏感,机密的数据要使用数据加密,还有一种情况是防止数据库数据泄露。

  下面主要讲t-sql中的两种数据加密方式:证书加密(certificate),密钥加密(symmetric)。

  大家只要熟悉t-sql的语法,知道怎么创建证书和密钥,怎么加密数据,怎么解密数据就行了。

1,证书加密

  首先我们创建一个证书:

1 create certificate WageCert             --创建证书
2 with subject='To Encrypt Wage',        --证书主题
3 expiry_date='2014/1/1';                 --证书过期时间

  expiry_date表示的是证书的过期时间,超过这个时间,创建的证书也就失效了,这点注意下。

  创建好证书,下一步就是使用证书加密数据了,我们先创建一张员工表,然后插入数据对工资字段进行机密。

  示例代码:

1 create table employee
2 (
3     EmpID int primary key,
4     Wage varbinary(500) not null        --工资字段,加密后为二进制数据
5 )
6 insert into dbo.employee
7 values(1,encryptbyCert(Cert_id('WageCert'),'5000'))   --使用证书加密

   使用证书解密数据示例代码:

1 select EmpID,CONVERT(varchar(30),DECRYPTBYcert(Cert_id('WageCert'),Wage)) as Wage
2 from dbo.employee                                     --使用证书解密数据

2,密钥加密

  密钥加密我们结合刚才的证书加密进行讲解。

  首先创建一个证书和使用证书的密钥,示例代码:

1 create certificate AdminPwdCert               --创建证书
2 with subject='To Encrypt Admin Password',     --证书主题
3 expiry_date='2014/1/1';                       --证书过期时间
4 
5 create symmetric key PwdKey                   --创建对称密钥
6 with algorithm=aes_256                          --使用aes_256加密算法
7 encryption by certificate AdminPwdCert        --使用证书加密

  使用密钥加密和使用证书加密不同的是,使用密钥加密的时候要打开密钥,然后加密数据,最后再关闭密钥。

  示例代码:

 1 open symmetric key PwdKey                     --打开对称密钥
 2 decryption by certificate AdminPwdCert
 3 
 4 insert into dbo.Wrokers(WrokerID,Name,Sex,Monery)    --插入加密数据
 5 values(103,'张三','',encryptbykey(key_guid('PwdKey'),'1234'))
 6 
 7 select WrokerID,Name,Sex,convert(varchar(100),DECRYPTBYKEY(Monery)) as Monery    --解密数据
 8 from dbo.Wrokers
 9 
10 close symmetric key PwdKey                    --关闭对称密钥

  t-sql中索引和数据加密就到着,这也可能是t-sql系列中最后一篇,以后有新内容的话会补充。

  接下来打算再做一些有关编程的学习笔记整理,希望大家多多关注。。。

   

网友评论
<