Função PHP para gerar senhas aleatórias

Hoje vou mostrar uma função em PHP para gerar senhas aleatórias complexas. Você pode escolher o tamanho da senha e sua força. A senha pode ser composta por números, letras ou símbolos. Para isso é só mudar o valor do parâmetro da função. A função gera uma senha de acordo com dois parâmetros: tamanho e força .

function gerarSenha($tamanho=9, $forca=0) {
	$vogais = 'aeuy';
	$consoantes = 'bdghjmnpqrstvz';
	if ($forca >= 1) {
		$consoantes .= 'BDGHJLMNPQRSTVWXZ';
	}
	if ($forca >= 2) {
		$vogais .= "AEUY";
	}
	if ($forca >= 4) {
		$consoantes .= '23456789';
	}
	if ($forca >= 8 ) {
		$vogais .= '@#$%';
	}

	$senha = '';
	$alt = time() % 2;
	for ($i = 0; $i < $tamanho; $i++) {
		if ($alt == 1) {
			$senha .= $consoantes&#91;(rand() % strlen($consoantes))&#93;;
			$alt = 0;
		} else {
			$senha .= $vogais&#91;(rand() % strlen($vogais))&#93;;
			$alt = 1;
		}
	}
	return $senha;
}
&#91;/source&#93;

Agora basta chamar a função, conforme mostrado abaixo. A função aceita dois parâmetros, $tamanho, que nada mais é que o tamanho desejado da senha, e $forca, a força desejada da senha.


&#91;source language='PHP'&#93;
echo 'Sua senha é <strong>'.gerarSenha(10,8).'</strong>';

Link original do artigo: Generate a password in php.

Me siga no Twitter: @kadunew ou assine nosso Feed e fique por dentro de todas atualizações aqui do blog.