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

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


–使用目录视图sys.certificates(http://msdn.microsoft.com/en-us/library/ms189774.aspx)来查看。


–查看当前数据库中的证书
USE [pratice]
go
–查看证书
SELECT  name, pvt_key_encryption_type_desc, issuer_name
FROM    sys.certificates


–示例三、备份和还原证书


–创建证书后,也可以使用BACKUP CERTIFICATE(http://msdn.microsoft.com/en-us/library/ms178578.aspx)
–命令备份到文件,为了安全地保存或在其他数据库中还原它。
–备份证书
BACKUP CERTIFICATE cert_Demo
TO FILE = ‘D:certDemo.BAK’–证书备份路径,用来加密
WITH PRIVATE KEY (FILE=’D:certDemoPK.BAK’,–证书私钥文件路径,用来解密
ENCRYPTION BY PASSWORD = ‘465!!!’,–加密私钥密码
DECRYPTION BY PASSWORD = ‘123!!!’ )–解密私钥密码


–备份后,可以在其他数据库中使用这个证书,或使用DROP CERTIFICATE命令删除它。
DROP CERTIFICATE cert_Demo
GO
–从备份文件中还原证书到数据库中
CREATE CERTIFICATE cert_Demo
FROM FILE = ‘D:certDemo.BAK’
WITH PRIVATE KEY (FILE = ‘D:certDemoPK.BAK’,
DECRYPTION BY PASSWORD = ‘456!!!’ ,–解密私钥密码
ENCRYPTION BY PASSWORD = ‘123!!!’)–加密私钥密码


–示例四、管理证书的私钥


–使用ALTER CERTIFICATE( http://msdn.microsoft.com/en-us/library/ms189511.aspx)
–命令为证书增加或删除私钥。
–这个命令允许删除私钥(默认通过数据库主密钥加密)、增加私钥或修改私钥的密码。


–从证书中删除私钥
ALTER CERTIFICATE cert_Demo
REMOVE PRIVATE KEY


–从备份文件为既有证书重新增加私钥
ALTER CERTIFICATE cert_Demo
WITH PRIVATE KEY
(FILE = ‘D:certDemoPK.BAK’,
DECRYPTION BY PASSWORD = ‘1234GH!!!’ ,–解密私钥密码
ENCRYPTION BY PASSWORD = ‘123!!!’)–加密私钥密码


–修改既有私钥的密码
ALTER CERTIFICATE cert_Demo
WITH PRIVATE KEY (DECRYPTION BY PASSWORD = ‘123!!!’,
ENCRYPTION BY PASSWORD = ‘789!!!13E’)



–示例五、使用证书加密和解密。

–使用函数EncryptByCert加密数据。(http://msdn.microsoft.com/zh-cn/library/ms174361.aspx)
USE [pratice]
GO
CREATE TABLE PWDQuestion
(
  CustomerID INT ,
  PasswordHintQuestion NVARCHAR(200) ,
  PasswordHintAnswer NVARCHAR(200)
)
–插入测试数据
INSERT  dbo.PWDQuestion ( CustomerID, PasswordHintQuestion, PasswordHintAnswer )
VALUES  ( 10, ‘您出生的医院名称?’, ENCRYPTBYCERT(CERT_ID(‘cert_Demo’), ‘北京四合院家中’) )

相关文章 大家在看