"Enter"a basıp içeriğe geçin

C# Gelişmiş Parola Üretme

C# ile rastgele gelişmiş şifre oluşturma işlemi nasıl yapılır bu yazıda onu inceleyeceğiz.

Aşağıdaki console uygulamasında, belirlenen karakter sayısına göre parola oluşturulabilir, sadece küçük harf, sadece büyük harf, sadece rakam ile parola oluşturulabilir yada isteğe göre karışık parola şekilde parola oluşturulabilir.

Bu işlemi yapmak için char dizisi oluşturduk. Koşula göre diziye değerleri atadık.Random sayı oluşturduk ve oluşan rastgele sayıya göre char dizisinde bir char değeri seçtik. Seçilen değeri parola değişkenine ekledik.İşlem sonunda parolayı return ettik ve parola ekrana yazdırdık.

Şimdi gelişmiş parola üretme programını inceleyelim.

using System;

namespace ParolaUretme
{
    class Program
    {
        private static Random _random;

        static void Main()
        {
            _random = new Random();
            Console.WriteLine("Parola kaç karakterden oluşsun?");
            var karakterSayisi = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine("Parola sadece harfden mi(1) sadece sayıdan mı(2) yoksa karışık mı(3) oluşturulsun?");
            string parolaHarfmiSayimi = Console.ReadLine();

            Console.WriteLine("Parolada sadece küçük harf mi(1) sadece büyük harf mi(2) yoksa karışık mı(3) oluşturulsun?");
            string parolaKucukmuBuyukHarfmi = Console.ReadLine();

            var olusturulanParola = ParolaOlustur(karakterSayisi, parolaHarfmiSayimi, parolaKucukmuBuyukHarfmi);
            Console.WriteLine("Oluşturulan Parola : " + olusturulanParola);

            Console.ReadKey();
        }

        private static string ParolaOlustur(int karakterSayisi, string parolaHarfmiSayimi, string parolaKucukmuBuyukHarfmi)
        {
            string parola = "";

            if (parolaHarfmiSayimi == "1")
                SadeceHarftenOlustur(karakterSayisi, parolaKucukmuBuyukHarfmi, ref parola);
            else if (parolaHarfmiSayimi == "2")
                SadeceSayidanOlustur(karakterSayisi, ref parola);
            else
                KarisikOlustur(karakterSayisi, parolaKucukmuBuyukHarfmi, ref parola);

            return parola;
        }

        private static void KarisikOlustur(int karakterSayisi, string parolaKucukmuBuyukHarfmi, ref string parola)
        {
            char[] cr;
            if (parolaKucukmuBuyukHarfmi == "1")
                cr = "0123456789abcdefghijklmnopqrstuvwxyz".ToCharArray();
            else if (parolaKucukmuBuyukHarfmi == "2")
                cr = "0123456789ABCDEFGHİJKLMNOPQRSTUVWXYZ".ToCharArray();
            else
                cr = "0123456789abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHİJKLMNOPQRSTUVWXYZ".ToCharArray();

            for (int i = 0; i < karakterSayisi; i++)
                parola += cr[_random.Next(0, cr.Length)];
        }

        private static void SadeceHarftenOlustur(int karakterSayisi, string parolaKucukmuBuyukHarfmi, ref string parola)
        {
            char[] cr;
            if (parolaKucukmuBuyukHarfmi == "1")
                cr = "abcdefghijklmnopqrstuvwxyz".ToCharArray();
            else if (parolaKucukmuBuyukHarfmi == "2")
                cr = "ABCDEFGHİJKLMNOPQRSTUVWXYZ".ToCharArray();
            else
                cr = "abcdefghijklmnopqrstuvwxyzABCDEFGHİJKLMNOPQRSTUVWXYZ".ToCharArray();

            for (int i = 0; i < karakterSayisi; i++)
                parola += cr[_random.Next(0, cr.Length)];
        }

        private static void SadeceSayidanOlustur(int karakterSayisi, ref string parola)
        {
            char[] cr = "0123456789".ToCharArray();

            for (int i = 0; i < karakterSayisi; i++)
                parola += cr[_random.Next(0, cr.Length)];
        }
    }
}

Çıktı

C# Gelişmiş Parola Üretme
C# Gelişmiş Parola Üretme

Bu yazıda c# ile parola üretme işlemi nasıl yapılır bunun inceledik. Diğer yazılarımda görüşmek dileğiyle…

Yazıyı Paylaşmak İster misin?
Share on Facebook
Facebook
Pin on Pinterest
Pinterest
Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin
Share on Tumblr
Tumblr
Share on Reddit
Reddit
    Bir cevap yazın

    E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir