Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

DECRYPTBYASYMKEY () अपेक्षित मूल्य नहीं लौटा रहा है

यह सही है - जब आप कुछ एन्क्रिप्ट करते हैं तो इसे बाइट सरणी के रूप में माना जाता है और इसे वापस कर दिया जाता है। 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!'));

यह गलत होगा, क्योंकि 'ग्रेग' का आपका इनपुट एक वर्चर है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मेरी निष्पादन योजना में एक प्रकार क्यों दिख रहा है?

  2. SQL सर्वर में क्वेरी कैप्चर करने के लिए XEvent Profiler का उपयोग करें

  3. एसक्यूएल सर्वर 2016

  4. SQL सर्वर में "अंतिम संशोधित" कॉलम बनाएं

  5. UniqueIdentifier क्लस्टर इंडेक्स पर NewSequentialId