ENCRYPTBYASYMKEY() –非对称密钥
ENCRYPTBYCERT() –证书加密
ENCRYPTBYKEY() –对称密钥
ENCRYPTBYPASSPHRASE() –通行短语(PassPhrase)加密
–SQLSERVER中的加密函数 2013-7-11
ENCRYPTBYASYMKEY() –非对称密钥
ENCRYPTBYCERT() –证书加密
ENCRYPTBYKEY() –对称密钥
ENCRYPTBYPASSPHRASE() –通行短语(PassPhrase)加密
—————————————————————————————
–非对称密钥包含数据库级的内部公钥和私钥,它可以用来加密和解密SQL Server数据库中的数据,
–它可以从外部文件或程序集中导入,也可以在SQL Server数据库中生成。它不像证书,不可以备份到文件。
–这意味着一旦在SQL Server中创建了它,没有非常简单的方法在其他用户数据库中重用相同的密钥。
–非对称密钥对于数据库加密属于高安全选项,因而需要更多的SQL Server资源。
–我们看一组例子:
–示例一、创建非对称密钥
—
–创建非对称密钥使用如下命令:
–CREATE ASYMMETRIC KEY
–以下语句创建一个非对称密钥asymDemoKey
use [pratice]
go
CREATE ASYMMETRIC KEY asymDemoKey –创建非对称密钥名称
WITH ALGORITHM = RSA_512 –加密安全类型
ENCRYPTION BY PASSWORD = ‘123!’ –密码
–示例二、查看当前数据库中的非对称密钥
–使用目录视图sys.asymmetric_keys(http://msdn.microsoft.com/en-us/library/ms188399.aspx)来查看。
–查看当前数据库中的非对称密钥
USE [pratice]
go
SELECT name, algorithm_desc, pvt_key_encryption_type_desc
FROM sys.asymmetric_keys
–示例三、修改非对称密钥的私钥密码
–你可以使用带有ENCRYPTION BY PASSWORD和DECRYPTION BY PASSWORD选项的
–ALTER ASYMMETRIC KEY(http://technet.microsoft.com/en-us/library/ms189440.aspx)修改私钥的密码
–修改私钥密码
ALTER ASYMMETRIC KEY asymDemoKey–要修改的密钥名称
WITH PRIVATE KEY –私钥
(ENCRYPTION BY PASSWORD = ‘456’,–指定新密码
DECRYPTION BY PASSWORD = ‘123!’)–旧密码是用来解密的
–示例四、使用非对称密钥对数据进行加密和解密。
—
–由于同时需要公钥和密钥,在维护保密数据时使用非对称密钥来加密数据是非常安全的方式。
–但同时用于大数据集时将消耗更多的资源。
—










