按证书加密

CREATE CERTIFICATE My_New_Cert
FROM FILE = 'D:\Temp\CertTest\certificateDER.cer'
GO

创建证书

SELECT EncryptByCert(Cert_ID('My_New_Cert'), 
'This text will get encrypted') encryption_test

通常,你将使用对称密钥进行加密,该密钥将通过证书中的非对称密钥(公钥)进行加密。

另请注意,加密受限于某些长度,具体取决于密钥长度,否则返回 NULL。微软写道:“限制是:512 位 RSA 密钥最多可加密 53 个字节,1024 位密钥最多可加密 117 个字节,2048 位密钥最多可加密 245 个字节。”

EncryptByAsymKey 具有相同的限制。对于 UNICODE,这将除以 2(每个字符 16 位),因此 1024 位密钥为 58 个字符。