Itu benar - ketika Anda mengenkripsi sesuatu itu diperlakukan sebagai array byte dan dikembalikan seperti itu. 0x47 adalah G, 72 adalah r dll.
Jika Anda memeriksa dokumentasi untuk DecryptByAsmKey Anda akan melihat tipe pengembaliannya adalah varbinary dengan ukuran maksimum 8.000 byte. Anda juga akan melihat orang yang bertobat dalam contoh.
Jadi jika Anda mengenkripsi dan mendekripsi string, Anda harus mengonversinya seperti itu
SELECT CONVERT(varchar(max),DECRYPTBYASYMKEY(ASYMKEY_ID('myasymkey'),
EncryptByAsymKey(AsymKey_ID('myasymkey'),
'Greg'),
N'123pass!'));
Perhatikan juga bahwa Anda perlu memastikan bahwa Anda mengonversi ke varchar(max) atau nvarchar(max) tergantung pada input Anda. Jika Anda mencoba
SELECT CONVERT(nvarchar(max),DECRYPTBYASYMKEY(ASYMKEY_ID('myasymkey'),
EncryptByAsymKey(AsymKey_ID('myasymkey'),
'Greg'),
N'123pass!'));
itu akan salah, karena input 'Greg' Anda adalah varchar.