क्रिप्टोग्राफिक रूप से सुरक्षित रैंडम नंबर्स के लिए C# में RNGCryptoServiceProvider क्लास का उपयोग किया जाता है। यह System.Security.Cryptography नेमस्पेस में है और एक क्रिप्टोग्राफिक रैंडम नंबर जेनरेटर (RNG) लागू करता है। सामान्य Random क्लास प्रिडिक्टेबल होती है, जबकि यह क्लास सुरक्षा-संवेदनशील कार्यों के लिए उपयुक्त है।
उदाहरण: सुरक्षित रैंडम नंबर जेनरेटर
using System;
using System.Security.Cryptography;
public class Demo
{
public static void Main(string[] args)
{
for (int i = 0; i <= 5; i++)
{
Console.WriteLine(RandomFunc());
}
}
private static double RandomFunc()
{
string n = "";
int randomValue;
double n2;
using (RNGCryptoServiceProvider crypto = new RNGCryptoServiceProvider())
{
byte[] val = new byte[6];
crypto.GetBytes(val);
randomValue = BitConverter.ToInt32(val, 1);
}
// रैंडम मान से 5 अंक निकालकर दशमलव बनाना
n += randomValue.ToString().Substring(1, 1)[0];
n += randomValue.ToString().Substring(2, 1)[0];
n += randomValue.ToString().Substring(3, 1)[0];
n += randomValue.ToString().Substring(4, 1)[0];
n += randomValue.ToString().Substring(5, 1)[0];
double.TryParse(n, out n2);
n2 = n2 / 100000;
return n2;
}
}
आउटपुट
0.13559 0.0465 0.18058 0.26494 0.52231 0.78927
मुख्य बिंदु
GetBytes(byte[])बाइट ऐरे को क्रिप्टोग्राफिक रूप से रैंडम बाइट्स से भरता है।usingब्लॉक सुनिश्चित करता है कि अनमैनेज्ड संसाधन मुक्त हों।- पासवर्ड, टोकन, OTP, एन्क्रिप्शन कीज़ के लिए इसका उपयोग करें।
- .NET Core / .NET 6+ में
RandomNumberGenerator(static क्लास) पसंदीदा है।