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

सी # और SQL2k8 एईएस एन्क्रिप्शन के बीच संगतता कैसे प्राप्त करें?

कुछ चीजें हैं जिन पर मैं ध्यान दूंगा:

  1. पूरी तरह से सुनिश्चित करें कि सामग्री और एन्कोडिंग में सादा पाठ समान है। IIRC, डिफ़ॉल्ट रूप से UTF-8 में स्ट्रीम करता है जबकि यदि आपका VarBinaryToBase64 फ़ंक्शन एक nvarchar पैरामीटर लेता है, यह यूनिकोड होगा।

  2. सुनिश्चित करें कि दोनों एन्क्रिप्शन एल्गोरिदम समान ब्लॉक आकार का उपयोग करते हैं। SQL में, आप एल्गोरिथम निर्धारित करते हैं जब आप CREATE SYMMETRIC KEY . को कॉल करते हैं . यदि आप एक एल्गोरिथ्म निर्दिष्ट नहीं करते हैं, तो यह AES256 का उपयोग करता है। .NET में RijndaelManaged . का उपयोग कर , मेरा मानना ​​है कि डिफ़ॉल्ट ब्लॉक आकार 128 है, लेकिन आप इसे 256 पर सेट कर सकते हैं (यदि आप Aes का उपयोग करते हैं तो आप ऐसा नहीं कर सकते हैं। कक्षा)।

  3. आखिरी चीज जो मैं देखूंगा वह यह है कि SQL सर्वर प्रारंभिक वेक्टर से कैसे निपटता है जैसा आपने अपनी संशोधित पोस्ट में बताया है। मैं कहना चाहता हूं कि यह authenticator . का उपयोग करता है इसके लिए पैरामीटर, लेकिन यह एक बेतुका अनुमान है।

संपादित करें

मैं बहुत दूर था। मैंने जो खोजा है उसे देखते हुए, आप SQL सर्वर के अंतर्निर्मित एन्क्रिप्शन द्वारा एन्क्रिप्ट किए गए टेक्स्ट को डिक्रिप्ट करने के लिए .NET क्लास का उपयोग नहीं कर सकते क्योंकि SQL सर्वर एक यादृच्छिक प्रारंभिक वेक्टर सहित एन्क्रिप्टेड होने के लिए गू का एक गुच्छा जोड़ता है। माइकल कोल की पुस्तक "प्रो टी-एसक्यूएल 2005 प्रोग्रामर गाइड" से (हालाँकि 2008 भी ऐसा ही करता है):



  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. एकल लेनदेन के तहत एक ही कनेक्शन स्ट्रिंग के साथ एकाधिक कनेक्शन, उन्नत लेनदेन?

  3. किसी अन्य तालिका से डेटा का उपयोग करके परिकलित कॉलम बनाएं

  4. एक डीबीए के जीवन के बारे में उल्लसित ट्वीट्स

  5. SQL केस स्टेटमेंट:यह क्या है और इसका उपयोग करने के सर्वोत्तम तरीके क्या हैं?