मैं एक वेब सेवा है कि मुझे आवश्यकता है कस्टम सत्र और यादृच्छिक पासवर्ड आदिस्थिर RNGCryptoServiceProvider - क्या यह सत्र और यादृच्छिक पासवर्ड उत्पन्न करने के लिए सुरक्षित और थ्रेडसेफ है?
मैं अगर एक स्थिर वर्ग बनाने और पूरी वेबसाइट के लिए एक अच्छा विचार है 1 स्थिर RNGCryptoServiceProvider उदाहरण उपयोग कर रहा है सोच रहा था उत्पन्न करने के लिए निर्माण कर रहा हूँ? 1. क्या यह एकाधिक http अनुरोध उदाहरणों से थ्रेडसेफ है? 2. क्या यह सुरक्षित है? अगर मैं किसी को थोड़े समय में कई सत्र उत्पन्न करने की इजाजत देता हूं, तो क्या आरएनजी की स्थिति को समझना और अगले सत्रों की भविष्यवाणी करना संभव होगा?
मेरी सेवा में अन्य उपयोगकर्ताओं को पता है कि कोई व्यक्ति साइन इन करता है, और मूल रूप से एक सत्र उत्पन्न करने के लिए लॉगिन करते समय मैंने मूल रूप से एक नया आरएनजी क्रिप्टो सेवा सेवा प्रदाता बनाया, लेकिन मेरी चिंता यह है कि यदि वर्तमान डेटाटाइम पर आधारित है, तो क्या कोई सैद्धांतिक रूप से केवल किसी अन्य उपयोगकर्ता के सत्र को "अनुमान लगाने" के लिए कुछ हज़ार सत्रों में जाने के लिए यदि उन्हें पता था कि वे किस दूसरे में लॉग इन करते हैं?
public static class random
{
private static RandomNumberGenerator _rng;
protected static RandomNumberGenerator rng
{
get
{
if (_rng == null) _rng = new RNGCryptoServiceProvider();
return _rng;
}
}
public static byte[] Bytes(int number)
{
var value = new byte[number];
rng.GetBytes(value);
return value;
}
public static byte Byte { get { return Bytes(1)[0]; } }
public static int Int { get { return BitConverter.ToInt32(Bytes(4), 0); } }
public static long Long { get { return BitConverter.ToInt64(Bytes(8), 0); } }
}
+1। –
'RNGCryptoServiceProvider' वर्ग .NET 3.5 के बाद से थ्रेड सुरक्षित है: https://msdn.microsoft.com/en-us/library/5f45t420%28v=vs.90%29.aspx देखें (लेकिन सिल्वरलाइट में नहीं)। –