Yüksek Güvenlik Seviyesinde Şifre Üretme

Bu makaleyi okumadan önce aşağıdaki makaleleri okumanız tavsiye edilir.


1) Csharp Programlama Dili ile Rastgele Sayı Üretme ve Spor Loto Tahmini
http://www.oguzhantas.com/csharp/73-csharp-ile-rastgele-sayi-uretme-ve-spor-loto-tahmini.html

2) Csharp Programlama Dili ile Karakter İşlemleri
http://www.oguzhantas.com/csharp/76-csharp-programlama-dili-ile-karakter-islemleri.html

3) Csharp Programlama Dili ile Rastgele Şifre Üretme
http://www.oguzhantas.com/csharp/77-csharp-programlama-dili-rastgele-sifre-uretme.html



Güvenlik kategorisindeki yazılarımızdan da okyacağınız gibi şifre üretirken büyük harf, hem küçük harf, sayı ve sembollerden oluşan bir şifrenin  kaba kuvvet saldırıs (brute force attack) gibi saldırılara karşı çözülmesi zordur. Bu yazımızda 8 haneli şifreler üreteceğiz.

Yeni bir proje açarak RastgeleSifreUretme ismini veriniz.

using System;
 
namespace RastgeleSifreUretme
{
    class Program
    {
        static void Main(string[] args)
        {
            Random rastgele = new Random();
            for (int j = 1; j <= 20; j++)
            {
                //İki büyük harf üretme
                for (int i = 1; i <= 2; i++)
                {
                    int sayi1 = rastgele.Next(65, 91);
                    Console.Write((char)sayi1);
                }
                //İki küçük harf üretme
                for (int i = 1; i <= 2; i++)
                {
                    int sayi1 = rastgele.Next(97, 123);
                    Console.Write((char)sayi1);
                }
                //İki sayı üretme
                for (int i = 1; i <= 2; i++)
                {
                    int sayi1 = rastgele.Next(48, 58);
                    Console.Write((char)sayi1);
                }
                //iki sembol üretme
                for (int i = 1; i <= 2; i++)
                {
                    int sayi1 = rastgele.Next(35, 39);
                    Console.Write((char)sayi1);
                }
 
                Console.WriteLine();
            }
        }
    }
}


Programın çalışan hali aşağıdaki gibidir. Csharp'ta dosyalara veya veritabanına da üretilen sonucu yazabilirsiniz.


 
Matematiksel olarak düşünürsek; ilk harf büyük 26 farklı durum söz konusudur. İkinci harf büyük yine 26 farklı durum söz konusudur. Küçük harfler için de aynı durumlar geçerlidir.  Rakamlar 10 farklı değer alabildiğinden ve semboller 4 farklı durumda olabildiğinden sonuçta; 26*26*26*26*10*10*4*4 = 731.161.600 deneme yapılması gerekir. Şifre uzunluğu artırılırsa bu değer daha büyük bir sayıya ulaşır ve çözülmesi daha da zorlaşır.

Mutlu Kodlamalar,
Oğuzhan TAŞ
Bookmark and Share