–查看密文
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)
—————————————————————————————–










