.NET CORE Random Password

Merhabalar;
.NET Core kullanarak belirlediğimiz karakter tiplerinde rastgele şifreler oluşturabilmek için bir proje oluşturacağım.

Random oluşturmak için 3 yöntemimiz var, Next, NextBytes ve NextDouble.

Next yönetimi rastgele bir sayı döndürür,
NextBytes yöntemi rastgele sayılardan oluşan bir byte dizesi döndürür,
NextDouble yöntemi de 0.0 – 1.0 arasında rastgele bir double sayı döndürür.

Örneğin sadece verilen karakterlerden oluşan ve belirli bir uzunlukta olan rastgele bir parola oluşturmak istiyoruz;
Bunun için kodumuzda kullanacağımız karakterleri ve uzunluğu belirtiyoruz

private static string CreateRandomPassword(int length = 15)  
{  
    // Create a string of characters, numbers, special characters that allowed in the password  
    string validChars = "ABCDEFGHJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*?_-";  
    Random random = new Random();  
  
    // Select one random character at a time from the string  
    // and create an array of chars  
    char[] chars = new char[length];  
    for (int i = 0; i < length; i++)  
    {  
        chars[i] = validChars[random.Next(0, validChars.Length)];  
    }  
    return new string(chars);  
}  

Not: validChars içeriğini istediğimiz karakterlerle değiştirebiliriz.

.NET CORE için Program.cs içeriğimiz aşağıdaki gibi olacaktır.

using System;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(CreateRandomPassword());
        Console.WriteLine(CreateRandomPassword(10));
        Console.WriteLine(CreateRandomPassword(30));

        Console.WriteLine(CreateRandomPasswordWithRandomLength());

        Console.ReadKey();
    }


    // Default size of random password is 15  
    private static string CreateRandomPassword(int length = 15)
    {
        // Create a string of characters, numbers, special characters that allowed in the password  
        string validChars = "ABCDEFGHJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*?_-";
        Random random = new Random();

        // Select one random character at a time from the string  
        // and create an array of chars  
        char[] chars = new char[length];
        for (int i = 0; i < length; i++)
        {
            chars[i] = validChars[random.Next(0, validChars.Length)];
        }
        return new string(chars);
    }

    private static string CreateRandomPasswordWithRandomLength()
    {
        // Create a string of characters, numbers, special characters that allowed in the password  
        string validChars = "ABCDEFGHJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*?_-";
        Random random = new Random();

        // Minimum size 8. Max size is number of all allowed chars.  
        int size = random.Next(8, validChars.Length);

        // Select one random character at a time from the string  
        // and create an array of chars  
        char[] chars = new char[size];
        for (int i = 0; i < size; i++)
        {
            chars[i] = validChars[random.Next(0, validChars.Length)];
        }
        return new string(chars);
    }
}

Burada oluşturduğum projeyi Github adresimde bulabilirsiniz.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>