Csharp Programlama Dili Rastgele Şifre Üretme

ASCII kod Tablosunu bir önceki örneğimizde anlatmıştık, şimdi yine bu tablodan yararlanarak ve random fonksiyonunu kullarak şifreler üreteceğiz. Ürettiğimiz bu şifreleri nerelerde kullanabiliriz? Örneğin bir web sitesinin iletişim bölümünde sorulan Güvenlik kodu(captcha) amacıyla kullanabiliriz. Bir bankanın kullanıcısına verdiği ilk şifre olarak kullanabiliriz. Bunlar gibi birçok örnek verebiliriz.



Örneğimizi  anlaşılması için basitleştireceğim. Aşağıdaki ASCII tablosunu hatırlayınız. Büyük A karakteri ASCII kodu 65'den başlar, büyük Z karakter kodu olan 90'a kadar gider.

A 65
B 66
C 67
...  
Z 90

Bu durumda 'A' ile 'Z' arasında bir sayı üretmek için (A ve Z dahil) aşağıdaki gibi random sayı üretecini kullanabiliriz.

Random rastgele = new Random();
 int sayi1 = rastgele.Next(65, 91);

 Console.Write((char)sayi1);

Bu kod satırları her çalıştığında 65 ile 90 arasında (65 ve 90) dahil sayı üretir. Üretilen bu sayıyı char tipine çevirerek karakter karşılığını elde edip ekrana karakter olarak yazdırıyoruz.

Şimdi örneğimizi biraz daha geliştirelim. 6 haneli sadece büyük harflerden oluşan şifreler üretelim. Aşağıdaki kod satırı ile bu işlemi kolayca yapabiliriz. 

Random rastgele = new Random();
 for (int i = 1; i <= 6; i++)
{
         int sayi1 = rastgele.Next(65, 91);
          Console.Write((char)sayi1);
}
 
Şimdi de şirketimizde 20 kişi olduğunu ve 20 kişi için 6 hanelik şifreler üretmemiz gerektiğini düşünelim. O zaman en dışta bu işlemi 20 defa tekrarlayacak bir döngüye daha ihtiyacımız olacak. Yeni bir Visual Studio projesi açarak RastgeleSifre:Uretme ismini veriniz ve aşağıdaki kodları yazarak çalıştırınız.

using System;
 
namespace RastgeleSifreUretme
{
    class Program
    {
        static void Main(string[] args)
        {
            Random rastgele = new Random();
 
            for (int j = 1; j <= 20; j++)
            {
                for (int i = 1; i <= 6; i++)
                {
                    int sayi1 = rastgele.Next(65, 91);
                    //65 dahil, 91 dahil değil A ile Z arasında
                    Console.Write((char)sayi1);
                }
                Console.WriteLine();
            }
        }
    }
}

Y
ukarıdaki örneğin ekran sonucu aşağıdaki gibi olacak, programı her çalıştırışınızda üretilecek şifreler değişecektir. 



Sanırım bu örnekle hem iç içe döngüleri, hem rastgele sayı üretmeyi hem de karakter kullanımını detaylı şekilde anlamış oldunuz. 

Mutlu kodlamalar,
Oğuzhan TAŞ
Mart, 2015
Bookmark and Share