DECRYPTBYASYMKEY (Transact-SQL)

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

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

语法

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

参数

  • Asym_Key_ID
    数据库中非对称密钥的 ID。 Asym_Key_ID 的数据类型为 int。

  • ciphertext
    使用非对称密钥加密的数据字符串。

  • @ciphertext
    这是类型为 varbinary 的变量,其中包含已用非对称密钥加密的数据。

  • Asym_Key_Password
    用于加密数据库中非对称密钥的密码。

返回类型

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

注释

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

权限

需要对非对称密钥具有 CONTROL 权限。

示例

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

SELECT CONVERT(nvarchar(max),
    DecryptByAsymKey( AsymKey_Id('JanainaAsymKey02'), 
    ProtectedData, N'pGFD4bb925DGvbd2439587y' )) 
AS DecryptedData 
FROM [AdventureWorks2012].[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)

概念

选择加密算法

加密层次结构