SQL Server 中的数据加密 (ADO.NET)

SQL Server 2005 提供使用证书、非对称密钥或对称密钥对数据进行加密和解密的功能。 它在一个内部证书存储中管理所有这些证书或密钥。 该存储使用加密层次结构,可在层次结构中的上一层级别保护证书和密钥。 SQL Server 2005 的此功能区域称为“机密存储”。

加密功能支持的最快加密模式是对称密钥加密。 此模式适用于处理大量数据。 可以通过证书、密码或其他对称密钥加密对称密钥。

密钥和算法

SQL Server 2005 支持多种对称密钥加密算法,包括 DES、Triple DES、RC2、RC4、128 位 RC4、DESX、128 位 AES、192 位 AES 和 256 位 AES。 这些算法使用 Windows 加密 API 实现。

在数据库连接范围内,SQL Server 2005 可以保留多个开放式对称密钥。 开放式密钥从存储中进行检索,并可用于解密数据。 解密一段数据时,不需要指定要使用的对称密钥。 每个加密的值均包含用于加密该值的密钥的密钥标识符(密钥 GUID)。 如果已解密正确的密钥并且该密钥已开放,则引擎会将加密的字节流匹配到开放式对称密钥。 然后使用此密钥执行解密并返回数据。 如果正确的密钥未开放,则返回 NULL。

有关显示如何处理数据库中的加密数据的示例,请参见 SQL Server 联机丛书中的 How to: Encrypt a Column of Data(如何:加密数据列)。

外部资源

有关数据加密的更多信息,请参见以下资源。

SQL Server Encryption(SQL Server 加密),位于 SQL Server 2008 联机丛书中

概述 SQL Server 2008 中的加密。 此主题包括到其他主题和帮助主题的链接。

Encryption Hierarchy(加密层次结构)Encryption How-to Topics(加密帮助主题),位于 SQL Server 2005 联机丛书中

概述 SQL Server 2005 中的加密。 此主题提供到其他主题和帮助主题的链接。

Using Encryption and Obfuscation(使用加密和模糊处理),位于 SQL Server 2000 联机丛书中

说明 SQL Server 2000 加密选项。 SQL Server 2000 可以选择使用安全套接字层 (SSL) 来加密在应用程序计算机和 SQL Server 实例之间传输的所有数据。

请参见

概念

SQL Server 中的应用程序安全机制方案 (ADO.NET)

SQL Server 中的身份验证 (ADO.NET)

SQL Server 中的服务器和数据库角色 (ADO.NET)

SQL Server 中的所有权和用户架构分离 (ADO.NET)

SQL Server 中的授权和权限 (ADO.NET)

其他资源

保证 ADO.NET 应用程序的安全