DECRYPTBYASYMKEY (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)