मेरा प्रश्न दो उदाहरणों के साथ निम्नलिखित प्रयोग से संबंधित है:
SQL सर्वर 2017 एक्सप्रेस उदाहरण (Microsoft SQL Server 2017 (RTM-CU16))
SQL सर्वर 2014 एक्सप्रेस उदाहरण (Microsoft SQL सर्वर 2014 (SP2-CU18))
मैंने एक पाठ को एन्क्रिप्ट करने के लिए ENCRYPTBYPASSPHRASE फ़ंक्शन का उपयोग किया और परिणाम का उपयोग डेसीपीटीबीपीएएसएसपीएचआरईएस के लिए @ciphertext के रूप में किया । मेरे परीक्षणों के परिणाम ये थे:
इस Microsoft सुधार के अनुसार ,
[...] SQL सर्वर 2017 पासफ़्रेज़ को हैश करने के लिए SHA2 हैशिंग एल्गोरिथ्म का उपयोग करता है। SQL सर्वर 2016 और SQL सर्वर के पुराने संस्करण SHA1 एल्गोरिथ्म का उपयोग करते हैं जिसे अब सुरक्षित नहीं माना जाता है।
लेकिन यह कैसे पता चलता है कि एल्गोरिथ्म का उपयोग डेटा को एन्क्रिप्ट करने के लिए किया गया था अगर फ़ंक्शन DECRYPTBYPASSPHRASE पर उस से संबंधित कोई तर्क नहीं है? क्या यह एन्क्रिप्टेड डेटा का हिस्सा है?
मेरे परीक्षणों के परिणामों से, मुझे लगता है कि SQL सर्वर हमेशा डेटा एन्क्रिप्ट करने के लिए उदाहरण पर उपलब्ध एल्गोरिथ्म के नए संस्करण का उपयोग करता है, लेकिन सभी एल्गोरिदम को डेटा को डिक्रिप्ट करने की कोशिश करता है जब तक कि वह एक फिट या रिटर्न न मिल जाए जब कोई संगत एल्गोरिदम नहीं मिलता है। । यह सिर्फ एक अनुमान है, क्योंकि मुझे यह जांचने का कोई तरीका नहीं मिला है कि हैशिंग एल्गोरिथ्म SQL सर्वर एन्क्रिप्टेड डेटा को डिक्रिप्ट करने के लिए क्या उपयोग करता है।