WEB开发网
开发学院数据库MSSQL Server 详述SQL Server 2005对称密钥加密技术 阅读

详述SQL Server 2005对称密钥加密技术

 2007-10-30 09:49:19 来源:WEB开发网   
核心提示: 如果不使用ENCRYPTION BY PASSWORD子句,证书将使用数据库主密钥来保护,详述SQL Server 2005对称密钥加密技术(5),如果不指定START_DATE子句,将使用执行此命令的日期来填写证书的Start Date字段, 下面的脚本创建数据库主密钥,创建一个测试证书

如果不使用ENCRYPTION BY PASSWORD子句,证书将使用数据库主密钥来保护。如果不指定START_DATE子句,将使用执行此命令的日期来填写证书的Start Date字段。

除了CREATE CERTIFICATE,SQL Server还提供了DROP CERTIFICATE,ALTER CERTIFICATE,BACKUP CERTIFICATE语句来管理证书。

注:不使用RESTORE语句来恢复证书。使用CREATE CERTIFICATE语句来恢复已经备份的证书。

2.2 使用证书来加密和解密

通过内置的函数EncryptByCert,DecryptByCert和Cert_ID,可以使用证书来加密和解密数据。Cert_ID函数得到指定名字的证书的ID。格式为:

Cert_ID ( 'cert_name' )
cert_name为证书的名字。
EncryptByCert函数需要证书ID,格式为:
EncryptByCert ( certificate_ID , { 'cleartext' | @cleartext } )

certificate_ID为通过Cert_ID函数得到的证书ID,cleartext为要加密的明文。类型为 nvarchar、char、varchar、binary、varbinary 或 nchar。EncryptByCert函数的返回值是最大大小为 8,000 个字节的 varbinary。

DecryptByCert语句用来解密先前使用证书加密的数据。格式为:

DecryptByCert (certificate_ID, { 'ciphertext' | @ciphertext } [ , { 'cert_password' | @cert_password } ] )

同样,certificate_ID为通过Cert_ID函数得到的证书ID,ciphertext是加密后的数据。如果创建证书时使用了ENCRYPT BY PASSWORD,则cert_password是当时创建时设定的密码,如果没有使用ENCRYPT BY PASSWORD,那这里也不需要cert_password。

下面的脚本创建数据库主密钥,创建一个测试证书,使用证书进行加密、解密。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:详述 SQL Server

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接