DecryptByAsymKey (Transact-SQL)

使用非对称密钥解密数据。

主题链接图标Transact-SQL 语法约定

语法

DecryptByAsymKey ( 
                                  Asym_Key_ID , 
                 { 'ciphertext' | @ciphertext } 
                 [ , 'Asym_Key_Password' ]
                                  )

参数

  • Asym_Key_ID
    数据库中非对称密钥的 ID。 int.
  • ciphertext
    使用非对称密钥加密的数据字符串。
  • @ciphertext
    这是类型为 varbinary 的变量,其中包含已用非对称密钥加密的数据。
  • Asym_Key_Password
    用于加密数据库中非对称密钥的密码。

返回类型

最大大小为 8,000 个字节的 varbinary

备注

与使用对称密钥进行加密和解密相比,使用非对称密钥进行加密和解密时的系统开销要高得多。当处理大型数据集(例如表中的用户数据)时,不推荐使用非对称密钥。

示例

以下示例将对已使用非对称密钥 JanainaAsymKey02 加密的密码进行解密,此非对称密钥存储在 AdventureWorks.ProtectedData04 中。返回的数据将使用非对称密钥 JanainaAsymKey02 解密,此密钥已使用密码 pGFD4bb925DGvbd2439587y 解密。纯文本将转换为 nvarchar 类型。

SELECT CONVERT(nvarchar(max),
    DecryptByAsymKey( AsymKey_Id('JanainaAsymKey02'), 
    ProtectedData, N'pGFD4bb925DGvbd2439587y' )) 
AS DecryptedData 
FROM [AdventureWorks].[Sales].[ProtectedData04] 
WHERE Description = N'encrypted by asym key''JanainaAsymKey02''';
GO

请参阅

参考

EncryptByAsymKey (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL)
ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)

其他资源

选择加密算法
加密层次结构

帮助和信息

获取 SQL Server 2005 帮助