Fala pessoal;
Estou fazendo um form para geração aletorias de senhas, de acordo com os check box que o usuario selecionar. Tenho 4 checkBox(numeros, letras minisculas, maisculas, caracteres especiais).
Quando eu tiro comento uma linha do código(uma MessageBox.Show()) a geração de senhas simplesmente deixa de ser aleatória! ele gera sempre os mesmos carateres! porem quando eu descomento o comando MessageBox.Show() o programa funciona! que loucura!
vou colocar o código abaixo.
Se alguem quiser eu posso mandar o form com os componentes para voces testarem
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Escola.View { public partial class ControleSenhas : Form { int numeroPossibilidades = 0; public ControleSenhas() { InitializeComponent(); labelSenhaGerada.Visible = false; } private void button1_Click(object sender, EventArgs e) { int tamanhoSenha = Convert.ToInt32(textBoxTamanho.Text); labelSenhaGerada.Text = gerarSenha(tamanhoSenha); labelSenhaGerada.Visible = true; labelSenhaGerada.Refresh(); } public string gerarSenha(int tamanhoSenha) { char[] senha = new char[tamanhoSenha]; Random randomizer = new Random(); for (int i = 0; i < tamanhoSenha; i++) { int[] caracteresAleatorios = verificaSelecoesDoUsuario(); senha[i] = (char)caracteresAleatorios[randomizer.Next(0, numeroPossibilidades)]; MessageBox.Show("qualquer porcaria!");// ESTA É A LINHA QUE FAZ O CÓDIGO FUNCIONAR! } // O array de char agora é transformado em uma string e então retornado. return new string(senha); } public int[] verificaSelecoesDoUsuario() { int[] valoresPossiveis = new int[4]; numeroPossibilidades = 0; Random randomizer = new Random(); #region validacaoDosCheckBox if (checkBoxNumeros.Checked == true) { valoresPossiveis[numeroPossibilidades] = randomizer.Next(48, 57 + 1); MessageBox.Show(valoresPossiveis[numeroPossibilidades].ToString()); numeroPossibilidades++; } if (checkBoxMinusculas.Checked == true) { valoresPossiveis[numeroPossibilidades] = randomizer.Next(97, 122 + 1); numeroPossibilidades++; } if (checkBoxMaiusculas.Checked == true) { valoresPossiveis[numeroPossibilidades] = randomizer.Next(65, 90 + 1); numeroPossibilidades++; } if (checkBoxEspeciais.Checked == true) { valoresPossiveis[numeroPossibilidades] = randomizer.Next(33, 47 + 1); numeroPossibilidades++; } #endregion return valoresPossiveis; } } }