2009-09-29 5 views
8

मैं aspx.net में क्वेरी स्ट्रिंग कैसे एन्क्रिप्ट करूं?asp.net में क्वेरी स्ट्रिंग को एन्क्रिप्ट कैसे करें?

पीएस मुझे एहसास है कि यह सुरक्षा प्रदान नहीं करता है। मैं सिर्फ एक पहेली को खराब करने के लिए देख रहा हूँ।

पी.पी.एस. हालांकि मैंने सीकेआर के जवाब को सही के रूप में चिह्नित किया है (प्रश्न के रूप में मुझे विश्वास है कि उनका सबसे सही जवाब है)। हालांकि, मेरे लिए, मैं बस एपक्रिप्शन के विकल्प ChoasPandion के विकल्प का प्रयास करने जा रहा हूं। अगर मुझे और सुरक्षा की ज़रूरत है तो मैं सीकेआरटी या इयान की तरफ देखूंगा।

+1

देखते हैं? – LukeH

+1

ल्यूक, मुझे इसके बजाय कहा जाना चाहिए, मैं "सुरक्षा" की तलाश नहीं कर रहा हूं। मैं सिर्फ सुरक्षा पर ध्यान केंद्रित करने वाले बहुत से लोगों से बचना चाहता था। – user179700

उत्तर

11

मैड्स Kristensen द्वारा एक ब्लॉग पोस्ट के बारे में Query String encryption.

एक बात हालांकि से सावधान रहें: वह एन्क्रिप्ट विधि के भीतर PasswordDeriveBytes उपयोग करता है। इसे आरएफसी 28 9 8 डेरिवेट्स द्वारा प्रतिस्थापित किया गया है। यदि आपको केवल क्वेरी स्ट्रिंग को एन्क्रिप्ट करने की आवश्यकता है और पृष्ठ पर हर लिंक यह ठीक नहीं है। यदि आप हालांकि प्रत्येक लिंक को एन्क्रिप्ट करना चाहते हैं तो भी आप उन क्वेरी स्ट्रिंग को एन्क्रिप्ट करने के लिए एक रिवाइटर जोड़ना चाहेंगे।

यदि आपके पृष्ठों पर आपके कई लिंक हैं तो ऐसा करने पर प्रदर्शन पर काफी प्रभाव पड़ेगा। आप क्या करना चाहते हैं एन्क्रिप्ट/डिक्रिप्ट विधियों से PasswordDeriveBytes/Rfc2898DeriveBytes को उठाएं और पासवर्ड और नमक के बजाय कुंजी और IV स्टोर करें।

संपादित करें:
मैं इस मुद्दे here पर एक ब्लॉग पोस्ट प्रकाशित किया है।

+2

अच्छा लिंक। जो भी इसे अनुसरण करता है उसे अधिक जानकारी के लिए टिप्पणियां पढ़नी चाहिए। – NotMe

2

इसे एन्क्रिप्ट करने से परेशान न करें। बस इसे बेस 64 स्ट्रिंग में कनवर्ट करें।

string encoded = Convert.ToBase64String(Encoding.Unicode.GetBytes(myQueryStringValue)); 
+2

ध्यान दें कि यह समाधान सुरक्षा प्रदान नहीं करता है - केवल obfuscation। (अस्पष्टता से सुरक्षा नहीं है)। हालांकि, ओपी के मामले में ऐसा लगता है कि वह अधिकतर सुरक्षा के बजाए अपवित्रता में रूचि रखता है, इसलिए यह संभवतः एक अच्छा समाधान होगा, जब तक कि आप लौटाई गई स्ट्रिंग को यूआरएलएनकोड करें। –

+1

यही कारण है कि मैंने यह जवाब पोस्ट किया। अगर उसे वास्तव में सुरक्षा की ज़रूरत है तो यह एक खराब जवाब होगा। – ChaosPandion

1

आप अपने उत्पाद ईद की और कहा कि तरह बातें छिपाने की कोशिश कर, तो क्यों न सिर्फ Encryption का उपयोग करें?

मुझे लगता है कि आप क्या करना चाहते हैं, अलग-अलग परिणाम प्राप्त करने के लिए लोगों को क्वेरी स्ट्रिंग को संपादित करना बंद करना है। ऐसा करने का सरल तरीका, क्वेरी स्ट्रिंग में क्वेरी स्ट्रिंग का हैश जोड़ना है, और कुछ बेस-पेज कार्यक्षमता जांचें कि हैश अनुरोध के लिए सही है, छेड़छाड़ क्वेरी स्ट्रिंग की पहचान करना। क्यों क्वेरी स्ट्रिंग प्रस्ताव सुरक्षा को एनक्रिप्ट नहीं होगा, यह सोचते हैं कि यह ठीक से किया गया था

Prevent query string manipulation by adding a hash?

+0

हैशिंग एन्क्रिप्शन से अलग है। – Nayef