Como criar um gerador de senhas aleatórias em JavaScript
Baixar arquivosSenhas fortes são essenciais para proteger suas contas online contra intrusos. Uma maneira eficaz de criar senhas fortes é usar um gerador de senha aleatório.
Neste artigo você vai aprender como criar um gerador de senha aleatório usando a linguagem JavaScript. vamos começar!
Definindo os caracteres possíveis
Para criar senhas aleatórias, primeiro, você precisa definir os caracteres a serem usados. Pode conter letras maiúsculas, letras minúsculas, números e caracteres especiais. Você pode criar uma string contendo todos esses caracteres, mas para fazer reuso desse código vou criar um objeto genérico com o nome de "_password" e dentro criar uma propriedade com o nome "characters" que também será um objeto, contento os caracteres separadamente para podermos selecionar quais caracteres irão compor a senha.
const _password = {
characters: {
numbers: '0123456789',
lowercase: 'abcdefghijklmnopqrstuvwxyz',
uppercase: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
special: '?/~^{}[]!@#$%&*()_-+=.,:;'
}
}
CopiarVamos definir também uma propriedade "value" para armazenar o valor da senha criada e uma propriedade "length" para definir a quantidade de caracteres que foi ou será senha usado para gerar a senha.
const _password = {
value: '',
length: 15,
characters: {
numbers: '0123456789',
lowercase: 'abcdefghijklmnopqrstuvwxyz',
uppercase: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
special: '?/~^{}[]!@#$%&*()_-+=.,:;'
}
}
CopiarCriando um método gerador de senhas
Agora, vamos criar um método "generate" que será responsável por gerar a senha aleatória. Esse método teŕa um parâmetro "chars" para definir quais caracteres serão usados para gerar a senha. O objeto "_password" completo ficará assim:
const _password = {
value: '',
length: 15,
characters: {
numbers: '0123456789',
lowercase: 'abcdefghijklmnopqrstuvwxyz',
uppercase: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
special: '?/~^{}[]!@#$%&*()_-+=.,:;'
},
generate(chars) {
let pwd = '';
this.length = this.length < 5 || this.length > 50 ? 15 : this.length;
chars = chars || Object.values(this.characters).join();
for (let i = 0; i < this.length; i++) {
pwd += chars[Math.floor(Math.random() * chars.length)];
}
this.value = pwd;
return pwd;
}
}
CopiarExemplo de uso do método "gerenate":
_password.generate(_password.characters.numbers + _password.characters.lowercase)
CopiarAgora podemos usar a imaginação e criar uma aplicação com inputs do tipo "checkbox" para selecionar quais carateres usar na geração da senha. Também podemos colocar input "range" para definir a quantidade de caracteres que serão usados.
Assista o vídeo e entenda como criar esta aplicação.