-- Test EncryptByCert with increasing-length strings -- ASCII strings between length 0 and 117 work. -- UNICODE string between length 0 and 58 work. SET NOCOUNT ON; USE SqlCredit; GO -- CREATE MASTER KEY ENCRYPTION BY PASSWORD = N'dbJ0u7n4!'; -- CREATE CERTIFICATE MyCertificate WITH SUBJECT = N'My Certificate'; -- GO DECLARE @ct INT; DECLARE @inputASCII VARCHAR(120); DECLARE @inputUNICODE NVARCHAR(120); --DECLARE @varbinaryASCII VARBINARY(128); --DECLARE @varbinaryUNICODE VARBINARY(128); DECLARE @varbinaryASCII VARBINARY(MAX); DECLARE @varbinaryUNICODE VARBINARY(MAX); SELECT @inputASCII = '', @inputUNICODE = N''; SELECT @ct = 0; WHILE @ct < 120 BEGIN SELECT @ct = @ct + 1, @inputASCII = REPLICATE('a', @ct), @inputUNICODE = REPLICATE(N'a', @ct); -- ASCII SELECT @varbinaryASCII = EncryptByCert (Cert_ID (N'MyCertificate'), @inputASCII), @varbinaryUNICODE = EncryptByCert (Cert_ID (N'MyCertificate'), @inputUNICODE); SELECT -- ASCII LEN(@inputASCII) AS [@inputASCII LEN], LEN(@varbinaryASCII) AS [@varbinaryASCII LEN], SUBSTRING(@inputASCII, 1, 30) AS [@inputASCII], @varbinaryASCII AS [@varbinaryASCII], -- UNICODE LEN(@inputUNICODE) AS [@inputUNICODE LEN], LEN(@varbinaryUNICODE) AS [@varbinaryUNICODE LEN], SUBSTRING(@inputUNICODE, 1, 30) AS [@inputUNICODE], @varbinaryUNICODE AS [@varbinaryUNICODE]; END; GO