2010-07-13 13 views
11

मेरी एएसपी.Net वेबसाइटों में से एक में, मुझे उस उपयोगकर्ता को एक लिंक प्रदान करना होगा जिसमें सभी क्वेरी स्ट्रिंग पैरामीटर एन्क्रिप्ट किए जाएं।मैं ASP.NET वेबसाइट में क्वेरी स्ट्रिंग पैरामीटर कैसे एन्क्रिप्ट कर सकता हूं?

मैं जो सोच रहा हूं वह "aspnet_regiis" (web.config डेटा एन्क्रिप्ट करने के लिए उपयोग किया जाता है) का उपयोग करना है, प्रकाशित यूआरएल के अंदर एक क्वेरी स्ट्रिंग के रूप में आउटपुट पास करें।

जब उपयोगकर्ता उस लिंक पर क्लिक करता है, तो मैं पहले स्ट्रिंग को डिक्रिप्ट करता हूं और फिर क्वेरी स्ट्रिंग के लिए मूल डेटा प्राप्त करता हूं।

क्या मैं यह करने में सही हूं? क्वेरी स्ट्रिंग को एन्क्रिप्ट और डिक्रिप्ट करने के लिए कोई अच्छी तकनीक है?

+0

आप एक बाहरी अनुप्रयोग कॉल करने के लिए की जरूरत नहीं है: समय सीमा समाप्ति दिनांक के रूप में अच्छी तरह से (या DateTime.MaxValue अगर यह आवश्यक नहीं है), यह एक नमूना कोड है। डेटा एन्क्रिप्ट/डिक्रिप्ट करने के लिए फ्रेमवर्क के अंदर क्रिप्टोग्राफी एपीआई का प्रयोग करें। http://msdn.microsoft.com/en-us/library/system.security.cryptography(VS.71).aspx – onof

+0

यहां बताया गया है कि मैंने इस कार्य से कैसे संपर्क किया: http://blackbeltcoder.com/Articles/asp/encrypting- प्रश्न-तर्क। –

+0

यह सब एएसपी.नेट में बनाया गया है - अपनी खुद की क्रिप्टो लिखने की कोई आवश्यकता नहीं है: http://brockallen.com/2012/06/21/use-the-machinekey-api-to-protect-values-in-asp -net / –

उत्तर

5

ASP.NET संदर्भ में एन्क्रिप्ट करने और स्ट्रिंग decrypting का एक अच्छा तरीका है का उपयोग करने के FormsAuthentication.Encrypt Method

यह केवल कुकी के लिए अनुकूल प्रतीत हो रहा है, लेकिन यह अन्य संदर्भ में अच्छी तरह से काम करता है, के साथ साथ, आप एक जोड़ सकते हैं

public static string Encrypt(string content, DateTime expiration) 
{ 
    return FormsAuthentication.Encrypt(new FormsAuthenticationTicket(1, 
     HttpContext.Current.Request.UserHostAddress, // or something fixed if you don't want to stick with the user's IP Address 
     DateTime.Now, expiration, false, content)); 
} 

public static string Decrypt(string encryptedContent) 
{ 
    FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(encryptedContent); 
    if (!ticket.Expired) 
      return ticket.UserData; 

    return null; // or throw... 
} 
संबंधित मुद्दे