- 28 Mar 2020
- 6,325
- 4,806
Giriş
Merhaba, C# uygulama geliştirme serimizin besinci yazısına hoş geldiniz.
Bu yazımızda bir parola oluşturucu yapacağız.
Serinin önceki yazılarını okumak isteyenler için
Örnekler İle C# Geliştirme - Bölüm 1
Örnekler İle C# Geliştirme - Bölüm 2
Örnekler İle C# Geliştirme - Bölüm 3
Örnekler İle C# Geliştirme - Bölüm 4
İyi okumalar dilerim!
Yapılış
İlk önce projemizi oluşturmakla başlayalım.
Ben programın ismini "Parola Oluşturucu" şeklinde koyuyorum, siz de kendinize göre isimlendirebilirsiniz.
Proje oluştuktan sonra formun ismini Özellikler > Text bölümünden 'Parola Oluşturucu' değiştiriyorum.
Sonrasında Araç Kutusundan aşağıdaki araçları ekliyorum.
2 adet GroupBox
1 adet Label
1 adet TrackBar
4 adet CheckBox
1 adet RichTextBox
1 adet Button
Not: Burada TrackBar yerine TextBox da kullanılabilirdi tabi ama bir farklılık yapayım dedim.
Bunlar dışında bir iki tane de ayar yapmamız gerekiyor. Bunlardan ilki TrackBar'ımızın değerini (value) arttırmak olacak.
Bunun için TrackBar'ımızın üstüne basıyoruz ve Maximum yazan yeri kendimize göre değiştiriyoruz.
Ben en fazla 50 karakter uzunluğunda olmasını istediğim için o kısmı 50 yaptım, siz kendi kafanıza göre değiştirin.
Şimdi de diğer bir ayarımızı yapalım. Bu ayarda Harf checkBox'ı varsayılan olarak açık gelmeli.
Bunun için CheckBox'ın üstüne basıyoruz ve Özellikler > Checked kısmını True yapıyoruz.
Evet, genel olarak UI (ara yüz) kısımları bitmiş bulunmakta. Şimdi kodlara geçelim.
Bunun için Oluştur (button1_click) tuşuna basıyoruz ve kodlarına giriyoruz.
Koda gittikten sonra ilk iş olarak global alana 4 adet değişken oluşturuyoruz.
Bu değişkenlerin içinde parola içinde kullanacağımız değerler bulunmakta.
Random nesnesi ise bu değerler arasından rastgele seçim yapması için oluşturuldu.
C#:
string Sayilar = "0123456789";
string KucukHarfler = "abcdefghijklmnopqrstuvwxyz";
string BuyukHarfler = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
string Semboller = "!@#$%^&*()-_=+[]{}|;:'\",.<>/?";
Random Rastgele = new Random();
Değişkenler içinden rastgele alma kodu.
C#:
StringBuilder password = new StringBuilder();
// Öncelikle bir rastgele seçilecek değerlerin depolanacağı bir değişken oluşturuyoruz.
string characterSet = "";
/*
Burada ise hangi verilerden oluşacağını seçtiriyoruz.
Örneğin ben CheckBox1(Sayı) ve CheckBox3(Büyük Harf) seçtim diyelim.
Bu işlemin sonunda oluşacak değer şu olacaktır: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
*/
if (checkBox1.Checked) // Burada CheckBox'ın true olup olmadığını kontrol ediyor. // Sayı
characterSet += Sayilar;
// Sayıları karakter setinin içine atıyor.
if (checkBox2.Checked) // Burada CheckBox'ın true olup olmadığını kontrol ediyor. // Sembol
characterSet += Semboller;
// Sembolleri karakter setinin içine atıyor.
if (checkBox3.Checked) // Burada CheckBox'ın true olup olmadığını kontrol ediyor. // Büyük Harf
characterSet += BuyukHarfler;
// Büyük harfleri karakter setinin içine atıyor.
if (checkBox4.Checked) // Burada CheckBox'ın true olup olmadığını kontrol ediyor. // Küçük Harf
characterSet += KucukHarfler;
// Küçük harfleri karakter setinin içine atıyor.
if (characterSet.Length == 0) // Burada ise karakter setinin içindeki sayının 0 olup olmadığı kontrol ediyor. Eğer 0 ise hiçbir CheckBox true değildir.
MessageBox.Show("En az bir karakter seti seçilmelidir.", "Uyarı");
// İlk string değer mesaj içeriğini, ikincisi ise mesaj kutumuzun başlığıbu temsil ediyor.
for (int i = 0; i < trackBar1.Value; i++) // Buradaki döngü TrackBar1 içindeki yani parola uzunluğu değerini alıyor. Value 5 ise 5 kere dönecektir.
{
int index = Rastgele.Next(0, characterSet.Length);
// Burada 0 ile karakter setinin uzunluğu arasında rastgele bir sayı oluşturuyor.
// Örneğin sayede sayılar seçili diyelim. 10 adet sayımız var. Yani 0 ile 10 arasında bir sayı çıkabilir.
password.Append(characterSet[index]);
// Burada da çıkan rastgele sayıyı karakter setinin içinden alıyor ve parola depolaması için kullandığımız nesneye ekliyor.
}
richTextBox1.Text = password.ToString();
// Son olarak ise ToString() ile nesnemizi string türüne çevirerek RichTextBox1 içine yazdırıyor.
Evet, parola oluşturma kısımlarımız tamamlandı. Şimdi son kısım olarak TrackBar'ımızın içindeki değeri Label içine yazdıralım ki kullanıcı kaç haneli oluşturduğunu görsün.
C#:
label1.Text = trackBar1.Value.ToString();
Evet, programımız genel olarak tamamlandı.
Şimdi de çalışma şeklini izleyelim.
Kapanış
Evet, bugünkü projemiz bitmiş bulunmakta.
Gelecekte ki derslerde görmek istediğiniz bir program olursa yazabilirsiniz.
Okuduğunuz için teşekkür ederim, iyi forumlar!