public static HashProvider SelectProvider()
{
if (_currentProviders == null)
{
_currentProviders = new List<HashProvider>();
foreach (HashProvider provider in Providers)
if (!provider.IsObsolete)
_currentProviders.Add(provider);
}
if (_currentProviders.Count == 0)
return DefaultProvider; //use current obsolete one as fallback
int index = new Random(DateTime.Now.Second).Next(0, _currentProviders.Count - 1);
return _currentProviders[index];
}