В постоянных усилиях по улучшению моего кода я ищу лучший способ создать и сравнить засоленный пароль в .NET.
Есть ли лучший или более безопасный способ сделать это?
Мой текущий код выглядит следующим образом:
    public static string CreateSaltedPassword(string salt, string password)
    {
        SHA1CryptoServiceProvider SHA1 = null;
        SHA1 = new SHA1CryptoServiceProvider();
        // Convert the string into an array of bytes
        byte[] byteValue = System.Text.Encoding.UTF8.GetBytes(salt + password);
        // Compute the hash value
        byte[] byteHash = SHA1.ComputeHash(byteValue);
        // Dispose the unmanaged cryptographic object 
        SHA1.Clear();
        return Convert.ToBase64String(byteHash);
    }
    public static bool ComparePasswords(string salt, string password, string storedPassword)
    {
        string passwordHash = string.Empty;
        // Create the hashed password
        passwordHash = PasswordProvider.CreateSaltedPassword(
            salt, password);
        // Compare the passwords
        return (string.Compare(storedPassword, passwordHash) == 0);
    }
