Het klopt - wanneer u iets versleutelt, wordt het behandeld als een bytearray en als zodanig geretourneerd. 0x47 is G, 72 is r enz.
Als u de documentatie voor DecryptByAsmKey bekijkt u zult merken dat het retourtype varbinair is met een maximale grootte van 8.000 bytes. Je zult de conversie ook opmerken in het voorbeeld.
Dus als je strings codeert en decodeert, moet je zo converteren
SELECT CONVERT(varchar(max),DECRYPTBYASYMKEY(ASYMKEY_ID('myasymkey'),
EncryptByAsymKey(AsymKey_ID('myasymkey'),
'Greg'),
N'123pass!'));
Merk ook op dat u ervoor moet zorgen dat u converteert naar varchar(max) of nvarchar(max), afhankelijk van uw invoer. Als je het hebt geprobeerd
SELECT CONVERT(nvarchar(max),DECRYPTBYASYMKEY(ASYMKEY_ID('myasymkey'),
EncryptByAsymKey(AsymKey_ID('myasymkey'),
'Greg'),
N'123pass!'));
het zou verkeerd zijn, aangezien je invoer van 'Greg' een varchar is.