private static readonly RNGCryptoServiceProvider rngCsp = new RNGCryptoServiceProvider();
private static void Encode(char[] data, char[] lexicon)
{
if (data == null)
{
throw new ArgumentException("data");
}
if (lexicon == null)
{
throw new ArgumentException("lexicon");
}
var randomNumber = new byte[1];
int size = data.Length;
for (int i = 0; i < size; i++)
{
rngCsp.GetBytes(randomNumber);
int index = randomNumber[0];
data[i] = lexicon[index % lexicon.Length];
}
}
private static void Main(string[] args)
{
string lexicon = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
int size = 8;
var data = new char[size];
Encode(data,lexicon.ToCharArray());
string password = new string(data);
}