السلام عليكم ورحمة الله وبركاته ...
نحتاج في الكثير من برامجنا إلى توليد أرقام عشوائية بطريقة أو بأخرى، و غالباً ما نستخدم الدالة Rand ، و لكن لو أمعنا النظر في نتائج هذه الدالة لوجدنا أنها تولد الأرقام بنسق معين Pattern يمكن التنبئ به. و هذا من شأنه أن يقلل من أمن البرنامج.
و قد وفرت شركة مايكروسوفت طريقة جديدة لتوليد الأرقام عن طريق استخدام دالة الـ RNGCryptoServiceProvider و ذلك لتوليد أرقام بطريقة آمنة. و الكود أدناه يوضخ طريقة الاستخدام.
public int GetRandom(int min, int max)
{
Random rnd = null;
RNGCryptoServiceProvider rand = new RNGCryptoServiceProvider();
// To fill Random number into.
byte[] r = new byte[10];
rand.GetBytes(r);
rnd = new Random(BitConverter.ToInt32(r, 0));
return rnd.Next(min, max);
}
و لا ننسى أن ندرج المكتبة System.Security.Cryptography باستخدام الأمر using .
و الكود أعلاه يقوم بتوليد رقم عشوائي محدود بـ Max و Min و يمكن تعديل الكود ليكون بدون حد أكبر و أدنا.