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

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

–本文及后面几篇文章将会举例说明。


–在SQL Server 2008中,还引入了对可扩展密钥管理(EKM)的支持,
–也就意味着SQL Server可以使用硬件安全模块(HSM)来存储和和管理加密密钥。
–HSM可以减少数据和实际的加密密钥耦合。


–此部分内容共分六篇文章:
–1、通过PassPhrase加密
–2、主密钥
–3、非对称密钥加密
–4、对称密钥加密
–5、证书加密
–6、透明数据加密


–一、通过通行短语(PassPhrase)加密

–对于不涉及证书及密钥的应急的数据加密,可以直接基于用户提供的密码来加密和解密数据。
–通行短语(PassPhrase)是允许存在空格的密码。
–这个PassPhrase不会存储在数据库中,因而也就意味着不会被使用存储的系统数据“破解”。
–同时,可以使用空格创建一个长的、易于记忆的句子来加密和解密敏感数据。


–我们需要了解的一对函数是ENCRYPTBYPASSPHRASE(http://technet.microsoft.com/zh-cn/library/ms190357.aspx)和DECRYPTBYPASSPHRASE(http://technet.microsoft.com/zh-cn/library/ms188910.aspx)

–这一对函数必须使用相同的参数。

–我们看一个示例:
USE [pratice]
go


— Table used to store the encrypted data
— for the purposes of this recipe
–DROP TABLE SecretInfo
–GO


CREATE TABLE SecretInfo
(
  MySecret varbinary(max) NOT NULL  –一定要二进制数据格式
)
GO


INSERT  SecretInfo ( MySecret ) SELECT  ENCRYPTBYPASSPHRASE(‘123456′,’你好啊’)


SELECT  MySecret FROM    SecretInfo


 


–想知道原文本的内容,使用以下语句:



SELECT  CAST(DECRYPTBYPASSPHRASE(‘123456’, MySecret) AS VARCHAR(MAX))
FROM    SecretInfo



–注意:

–1、使用通行短语进行加密数据,不用担心sysadmin服务器角色成员读取数据
–(在后面文章会看到,服务器角色成员sysadmin拥有读取其他形式的加密数据的内在权限。)


–2、假定没有将密码存储在表中或在任何模块(存储过程、触发器等)中使用密码,
–加密的数据将防止从数据库备份被偷窃或在SQL Server实例中的数据库中渗透。
–如果通行短语短语密码泄漏,数据就可以被解密。

您可能感兴趣的文章:SQL Server 2008中的代码安全(三) 通过PassPhrase加密SQLServer 2008中的代码安全(五) 非对称密钥加密SQL Server 2008中的代码安全(六) 对称密钥加密SQL Server储过程加密和解密原理深入分析实例讲解SQL Server加密功能

相关文章 大家在看