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

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

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!’)–旧密码是用来解密的



–示例四、使用非对称密钥对数据进行加密和解密。

–由于同时需要公钥和密钥,在维护保密数据时使用非对称密钥来加密数据是非常安全的方式。
–但同时用于大数据集时将消耗更多的资源。

相关文章 大家在看