Javascript: Password Generator

Hoje me deparei com o fato de ter que alterar a senha do FTP, e há algum tempo queria fazer um gerador de senhas.

Então não teve momento mais oportuno, com um simples script que transforma um números aleatórios em char e pronto. Está resulvido o meu problema.

var Password = function() {
	this.pass = "";

	this.generate = function(chars) {
		for (var i= 0; i<chars; i++) {
			this.pass += this.getRandomChar();
		}
		return this.pass;
	}

	this.getRandomChar = function() {
		 /*
		*    matriz contendo em cada linha indices (inicial e final) da tabela ASCII para retornar alguns caracteres.
		*    [48, 57] = numeros;
		*    [64, 90] = "@" mais letras maiusculas;
		*    [97, 122] = letras minusculas;
		*/
		var ascii = [[48, 57],[64,90],[97,122]];
		var i = Math.floor(Math.random()*ascii.length);
		return String.fromCharCode(Math.floor(Math.random()*(ascii[i][1]-ascii[i][0]))+ascii[i][0]);
	}
}

O que tem de novo nesse script em relação ao conteúdo do blog está na funcão getRandomChar. Primeiro temos um vetor bidimensional (matriz) que guardamos em cada linha dois valores (duas colunas).

Guardamos esses dois valores porque estamos utilizando a tabela ASCII para converter número em caracter. Portanto para não termos caracteres do tipo “*”, “.”, “;” (etc) em nossa senha, temos que delimitar quais caracteres podem ser gerados. Logo o primeiro valor guarda a primeiro caracter que pode ser exibido e o segundo o último, e entre eles todos podem ser exibidos.

E para converter o valor no tão “pelejado” caracter utilizamos a função própria do Javascript da classe String ( String.fromCharCode() ), que obviamente é passado um inteiro como parâmetro e retornado um char.

Enfim o script é capaz de gerar senhas de tamanho 0 até 9999 (restringido devido que senhas muito grandes são mais demoradas para serem geradas, e pode levar a travamento do browser) contendo letras minúsculas (a até z), letras maiúsculas (A até Z), números (0 até 9) e “@” (arroba).

password_generator.jpg

Espero que seja de bom aproveito.

5 thoughts on “Javascript: Password Generator

  1. Anderson

    Olá Rogério, td bem?

    Estou tendo um problema nesta linha do código:

    “return String.fromCharCode(Math.floor(Math.random()*(ascii[i][1]-ascii[i][0]))+ascii[i][0]);”

    ‘)’ esperado;

    Será que é por causa que eu uso Ajax nas minhas páginas? para carregalas em uma div?

    Aguardo

    Valeu.

    Responder
  2. Pingback: Plugin jQuery para geração de senhas « Carlos A. Junior

  3. Pingback: Gerador de senhas randômico em JavaScript | WillBlog

  4. Pingback: Carlos Alberto Junior » Plugin jQuery para geração de senhas

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s