Создание хешированных паролей в C#

Создание хешированных паролей в C#

Создание хешированных паролей в C#

Доброго времени суток! В данной статье я покажу Вам как можно просто создать хешированные пароли
в С#.

Итак, код:

Метод, который создается случайную строку — соль — для защиты паролей



static byte[] GenerateSalt()

{

    const int SaltLength = 64;

    byte[] salt = new byte[SaltLength];



    var rngRand = new RNGCryptoServiceProvider();

    rngRand.GetBytes(salt);



    return salt;

}



Следующие два метода используют «соль», созданную выше, для создания хешированного с помощью MD5 пароля:



static byte[] GenerateMD5Hash(string password, byte[] salt)

{

    byte[] passwordBytes = Encoding.UTF8.GetBytes(password);

    byte[] saltedPassword = new byte[salt.Length + passwordBytes.Length];



    using var hash = new MD5CryptoServiceProvider();



    return hash.ComputeHash(saltedPassword);

}



Тот же хеш, что и выше, но только созданный с помощью алгоритма SHA256



static byte[] GenerateSha256Hash(string password, byte[] salt)

{

    byte[] passwordBytes = Encoding.UTF8.GetBytes(password);

    byte[] saltedPassword = new byte[salt.Length + passwordBytes.Length];



    using var hash = new SHA256CryptoServiceProvider();



    return hash.ComputeHash(saltedPassword);

}



Используется код выше следующим образом:



static void Main(string[] args)

{

    Console.Write("Введите пароль?");



    string password = Console.ReadLine();



    // создаем соль

    byte[] salt = GenerateSalt();



    // создаем MD5-хеш

    byte[] md5Hash = GenerateMD5Hash(password, salt);

    string md5HashString = Convert.ToBase64String(md5Hash);

    Console.WriteLine($"nMD5-хеш: {md5HashString}");



    // создаем Sha256-хеш

    byte[] sha256Hash = GenerateSha256Hash(password, salt);

    string sha256HashString = Convert.ToBase64String(sha256Hash);

    Console.WriteLine($"nSHA256: {sha256HashString}");

}




Источник

НЕТ КОММЕНТАРИЕВ

Оставить комментарий