Geral

Gerando Senhas Aleatórias em Visual C#

Ola Pessoal,

Como tenho algumas pessoas pedindo.. resolvi gerar um pequeno algoritmo em C# para que possamos gerar senhas aleatórias. Para iniciar devemos difinir os caracteres que você deseja que seja usando nas senhas, para isso neste exemplo vamos utilizar uma constante mesmo como é demostrado abaixo:

private const string SenhaCaracteresValidos = "abcdefghijklmnopqrstuvwxyz1234567890@#!?";

Logo após podemos utilizar este pequeno algoritmo abaixo que irá utilizar os caracteres acima informados para gerar a senha.

public string CreatePassword(int tamanho)
{
int valormaximo = SenhaCaracteresValidos.Length;

Random random = new Random(DateTime.Now.Millisecond);

StringBuilder senha = new StringBuilder(tamanho);

for (int indice = 0; indice < tamanho; indice++)
senha.Append(SenhaCaracteresValidos”[“random.Next(0, valormaximo)”]”);

return senha.ToString();
}

Espero que ajude a todos, mais esta dica.

[]’s


Bookmark and Share

8 Comments on “Gerando Senhas Aleatórias em Visual C#

  1. Oi. Na forma como esta add todo o vetor de origem n vezes.

    Considere trocar a linha

    senha.Append(SenhaCaracteresValidos);

    por

    senha.Append(SenhaCaracteresValidos[random.Next(0, (valormaximo – 1))]);

  2. correção onde está
    senha.Append(SenhaCaracteresValidos);
    troque por
    senha.Append(iSenhaCaracteresValidos[random.Next(valormaximo -1)]);

    🙂

  3. Pessoal

    Desculpe o word press devido ao caractere “[” comeu um peço do codigo.. agora coloquei entre aspas para nao sumir!

    Obrigado pela dica de todos

  4. Para o pessoal que está tendo problema:

    private string GerarSenha(int tamanho)
    {
    const string senhaCaracteresValidos = “abcdefghijklmnopqrstuvwxyz1234567890@#!?”;

    var valormaximo = senhaCaracteresValidos.Length;
    var random = new Random(DateTime.Now.Millisecond);
    var senha = “”;
    for (var indice = 0; indice < tamanho; indice++)
    senha += senhaCaracteresValidos[random.Next(0, valormaximo)];
    return senha;
    }

Deixe uma resposta