यह सही है - जब आप कुछ एन्क्रिप्ट करते हैं तो इसे बाइट सरणी के रूप में माना जाता है और इसे वापस कर दिया जाता है। 0x47 G है, 72 r आदि है।
अगर आप DecryptByAsmKey के दस्तावेज़ों की जांच करते हैं आप देखेंगे कि वापसी प्रकार 8,000 बाइट्स के अधिकतम आकार के साथ varbinary है। आप उदाहरण में रूपांतरित व्यक्ति को भी देखेंगे।
इसलिए यदि आप स्ट्रिंग्स को एन्क्रिप्ट और डिक्रिप्ट कर रहे हैं तो आपको इस तरह कनवर्ट करना होगा
SELECT CONVERT(varchar(max),DECRYPTBYASYMKEY(ASYMKEY_ID('myasymkey'),
EncryptByAsymKey(AsymKey_ID('myasymkey'),
'Greg'),
N'123pass!'));
यह भी ध्यान दें कि आपको यह सुनिश्चित करने की आवश्यकता है कि आप अपने इनपुट के आधार पर varchar(max) या nvarchar(max) में कनवर्ट कर रहे हैं। अगर आपने कोशिश की
SELECT CONVERT(nvarchar(max),DECRYPTBYASYMKEY(ASYMKEY_ID('myasymkey'),
EncryptByAsymKey(AsymKey_ID('myasymkey'),
'Greg'),
N'123pass!'));
यह गलत होगा, क्योंकि 'ग्रेग' का आपका इनपुट एक वर्चर है।