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