Websayfamdaki Programlama İpuçları bölümüne başlarken kodların hem vb.net hemde c#.net hallerini yazıyordum. Karar değiştirdim ve projelerimde hangi dili kullanıyorsam onu kodlamaya karar verdim. Neticede online convert sayfalarından diğer dildeki halini de görebilirsiniz. Bunun için özellikle burayı tavsiye ederim. Hepimizin en çok kullandığı kodlardan biri de random sayı üretme kodlarıdır. Random sınıfı kripto işlemleri için yeterli değil. .NET Framework ile birlikte gelen RandomNumberGenerator sınıfından yararlanıp istediğimiz amaçlar işler için rastgele sayılar üretebiliriz. Bu sınıfı kullanabilmek için aşağıdaki satırı namespace olarak eklemeliyiz:
using System.Security.Cryptography;
Şimdi kodlara geçelim. Ben Memik Yanık'ın algoritmasını kullanıyorum projelerimde. Dolayısıyla farklı yerlerde görürseniz şaşırmayın
Aşağıdaki örnekte ilk olarak 10 elemanlı bir byte dizisi hazırlanıyor. Rastgele hazırlamak istediğimiz sayının daha uzun veya kısa olmasını istiyorsak, byte tipindeki dizi değişkenin eleman sayısında değişiklik yapmamız gerekiyor.
Private void Form1_Click(object sender, EventArgs e)
{
byte[] Dizi = new byte[10];
RandomNumberGenerator Sayi;
Sayi = RandomNumberGenerator.Create();
Sayi.GetBytes(Dizi);
string Str="";
for (int i = 0; i < Dizi.Length; i++)
Str = Str + Dizi[i].ToString();
textBox1.Text = Str;
}
Devamında RandomNumberGenerator tipinde bir değişken tanımlayıp Create() metodu ile RandomNumberGenerator nesnesi hazırlanıyor. Bu sınıfın GetBytes() metodu parametre olarak aldığı Byte dizisinin içeriğini rastgele dolduruyor.