SQLSERVER加密解密函数(非对称密钥 证书加密 对称密钥)使用方法代

2020-07-10 08:06:12易采站长站整理

–不推荐使用非对称密钥对数据加密,但它仍然是一个选择。一旦将非对称密钥加到数据库,就可以用来加密和解密数据。

–用到以下两个sql函数:

–EncryptByAsymKey 加密数据。(http://technet.microsoft.com/en-us/library/ms186950.aspx)

–DecryptByAsymKey解密数据。(http://msdn.microsoft.com/en-us/library/ms189507.aspx)


–注意,在通过证书加密时,DecryptByAsymKey返回的是varbinary类型的加密数据。

–下面是一个例子:



use [pratice]
go


–创建需要加密的数据
Create Table BankUser
(PKID int primary key identity(1,1)
,UserNo varbinary(1000) null  –一定要用二进制数据类型
,CurState datetime   not null
)
go


insert into BankUser
(UserNo,CurState)
VALUES (EncryptByAsymKey(AsymKey_ID(‘asymDemoKey’),’137′),GETDATE())
–插入一条记录,字段UserNo存储了加密的号码值
go


 


–查看未加密的数据: 
SELECT PKID,Curstate,
cast
(DecryptByAsymKey(AsymKey_ID(‘asymDemoKey’),UserNo,N’123′)
as varchar(1000)) as UserNo –需要原始私钥
from BankUser


 


 


–示例五、删除非对称密钥


–命令:DROP ASYMMETRIC KEY 删除指定的非对称密钥( http://msdn.microsoft.com/en-us/library/ms188389.aspx)

–例子:
DROP ASYMMETRIC KEY asymDemoKey


DROP TABLE [dbo].[BankUser]


–小结:

–1、本文主要介绍非对称密钥的创建、删除、查看以及用它来修改私钥、进行数据的加密和解密。

–2、非对称密钥包含数据库级的内部公钥和私钥,它可以用来加密和解密SQL Server数据库中的数据。

–3、非对称密钥对于数据库加密属于高安全选项,因而需要更多的SQL Server资源,不推荐使用。

–下文将主要介绍相对简单的并且广泛应用的对称密钥加密(Symmetric Key Encryption)
—————————————————————————————————–


–SQL Server 2008引入透明数据加密(Transparent Data Encryption),即TDE
–它允许你完全无需修改应用程序代码而对整个数据库加密。

–当一个用户数据库可用且已启用TDE时,在写入到磁盘时在页级实现加密。在数据页读入内存时解密。
–如果数据库文件或数据库备份被盗,没有用来加密的原始证书将无法访问。
–这几乎是SQL Server2008安全选项中最激动人心的功能了,有了它,我们至少可以将一些初级的恶意窥视拒之见外。

相关文章 大家在看