Det er rigtigt - når du krypterer noget, behandles det som en byte-array og returneres som sådan. 0x47 er G, 72 er r osv.
Hvis du undersøger dokumentationen for DecryptByAsmKey du vil bemærke, at returtypen er varbinær med en maksimal størrelse på 8.000 bytes. Du vil også bemærke konverteren i eksemplet.
Så hvis du krypterer og dekrypterer strenge, skal du konvertere sådan
SELECT CONVERT(varchar(max),DECRYPTBYASYMKEY(ASYMKEY_ID('myasymkey'),
EncryptByAsymKey(AsymKey_ID('myasymkey'),
'Greg'),
N'123pass!'));
Bemærk også, at du skal sikre dig, at du konverterer til varchar(max) eller nvarchar(max) afhængigt af dit input. Hvis du prøvede
SELECT CONVERT(nvarchar(max),DECRYPTBYASYMKEY(ASYMKEY_ID('myasymkey'),
EncryptByAsymKey(AsymKey_ID('myasymkey'),
'Greg'),
N'123pass!'));
det ville være forkert, da dit input af 'Greg' er en varchar.