/*
Este exemplo mostra como escrever um gerador de
senhas aleatórias.
*/
static void Main(string[] args){
// nos caracteres possíveis nós evitamos a letra "L"
// minúscula, para que o usuário não confunda com o
// numeral "1"
string carac = "abcdefhijkmnopqrstuvxwyz123456789";
// converte em uma matriz de caracteres
char[] letras = carac.ToCharArray();
// vamos embaralhar 5 vezes
Embaralhar(ref letras, 5);
// junta as partes e forma uma senha de 8 dígitos e/ou
// caracteres
string senha = new String(letras).Substring(0, 8);
// exibe o resultado
Console.WriteLine("A senha sugerida é: " + senha);
Console.WriteLine("Pressione uma tecla para sair...");
Console.ReadKey();
}
static void Embaralhar(ref char[] array, int vezes){
Random rand = new Random(DateTime.Now.Millisecond);
for(int i = 1; i <= vezes; i++){
for(int x = 1; x <= array.Length; x++){
Trocar(ref array[rand.Next(0, array.Length)],
ref array[rand.Next(0, array.Length)]);
}
}
}
static void Trocar(ref char arg1, ref char arg2){
char strTemp = arg1;
arg1 = arg2;
arg2 = strTemp;
}