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

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


–查看密文
SELECT [PasswordHintQuestion], CAST(PasswordHintAnswer AS VARCHAR(200)) PasswordHintAnswer
FROM    dbo.PWDQuestion
WHERE   CustomerID = 10


–查看原文
SELECT  PasswordHintQuestion,
        CAST(DECRYPTBYCERT(CERT_ID(‘cert_Demo’), PasswordHintAnswer,
                           N’789!!!13E’) AS VARCHAR(200)) PasswordHintAnswer
FROM    dbo.PWDQuestion
WHERE   CustomerID = 10


 


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


–在前面的文章中,你已经看到打开用非对称密钥加密的对称密钥的演示,
–它分两个步骤,首先用OPEN SYMMETRIC KEY命令,然后是实际的DecryptByKey函数调用。
–SQL Server也提供了能够将这两个步骤合二为一的额外的解密函数:
–DECRYPTBYKEYAUTOASYMKEY(http://msdn.microsoft.com/en-us/library/ms365420.aspx)
–和DecryptByKeyAutoCert(http://msdn.microsoft.com/en-us/library/ms182559.aspx)
USE [pratice]
GO


–本例使用数据库主密码加密,因而不需要密码。
—-Create master Key Encryption By password=’123ASD!’
—-go


–创建非对称密钥
CREATE ASYMMETRIC KEY asymDemo_V2
WITH ALGORITHM = RSA_512
–创建对称密钥
CREATE SYMMETRIC KEY sym_Demo_V2
WITH ALGORITHM = TRIPLE_DES
ENCRYPTION BY ASYMMETRIC KEY asymDemo_V2


–打开对称密钥,插入记录
OPEN SYMMETRIC KEY sym_Demo_V2
DECRYPTION BY ASYMMETRIC KEY asymDemo_V2
INSERT  dbo.PWDQuestion ( CustomerID, PasswordHintQuestion, PasswordHintAnswer )
VALUES  ( 22, ‘您出生的医院名称?’, ENCRYPTBYKEY(KEY_GUID(‘sym_Demo_V2’), ‘邵逸夫医院’) )
CLOSE SYMMETRIC KEY sym_Demo_V2


–此时,使用DecryptByKeyAutoAsymKey解密数据,只需要一个操作
SELECT  CAST(DECRYPTBYKEYAUTOASYMKEY(ASYMKEY_ID(‘asymDemo_V2’), NULL,
                                     PasswordHintAnswer) AS VARCHAR)
FROM    dbo.PWDQuestion
WHERE   CustomerID = 22


–小结:

–1、本文主要介绍证书的创建、删除、查看以及用它来修改加密方式、进行数据的加密和解密。

–2、证书加密和非对称密钥加密相对对称密钥加密更为消耗资源。

–下文将主要介绍SQL Server中最为令人鼓舞的透明数据加密(TDE)
—————————————————————————————–

相关文章 大家在看