Autor Tópico: [Resolvido] Rotina Geradora de Senhas  (Lida 1114 vezes)

jorgepopel

  • Expert
  • *****
  • Mensagens: 568
    • iCentro Tecnologia e Sistemas
    • Email
[Resolvido] Rotina Geradora de Senhas
« Online: Setembro 11, 2013, 09:11:28 pm »
Pessoal,

Estava procurando uma função simples para gerar senhas alfanuméricas.

Encontrei uma função que está ai embaixo:
Código: [Selecionar]
   /*
* Função para gerar senhas aleatórias
*
* @author    Thiago Belem <contato@thiagobelem.net>
*
* @param integer $tamanho Tamanho da senha a ser gerada
* @param boolean $maiusculas Se terá letras maiúsculas
* @param boolean $numeros Se terá números
* @param boolean $simbolos Se terá símbolos
*
* @return string A senha gerada
*/
function geraSenha($tamanho = 8, $maiusculas = true, $numeros = true, $simbolos = false)
{
// Caracteres de cada tipo
$lmin = 'abcdefghijklmnopqrstuvwxyz';
$lmai = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

$num = '1234567890';
$simb = '!@#$%*-';

// Variáveis internas
$retorno = '';
$caracteres = '';

// Agrupamos todos os caracteres que poderão ser utilizados
$caracteres .= $lmin;
if ($maiusculas) $caracteres .= $lmai;
if ($numeros) $caracteres .= $num;
if ($simbolos) $caracteres .= $simb;

// Calculamos o total de caracteres possíveis
$len = strlen($caracteres);

for ($n = 1; $n <= $tamanho; $n++) {
// Criamos um número aleatório de 1 até $len para pegar um dos caracteres
$rand = mt_rand(1, $len);
// Concatenamos um dos caracteres na variável $retorno
$retorno .= $caracteres[$rand-1];
}

return $retorno;
}

Joguei ela numa biblioteca de rotinas e funciona 100%.

O uso é:
Código: [Selecionar]

// Gera uma senha com 10 carecteres: letras (min e mai), números
$senha = geraSenha(10);
// gfUgF3e5m7

// Gera uma senha com 9 carecteres: letras (min e mai)
$senha = geraSenha(9, true, false);
// BJnCYupsN

// Gera uma senha com 6 carecteres: letras minúsculas e números
$senha = geraSenha(6, false, true);
// sowz0g

1 // Gera uma senha com 15 carecteres de números, letras e símbolos
$senha = geraSenha(15, true, true, true);
// fnwX@dGO7P0!iWM

Só vamos manter a autoria, vamos ser corretos (não que não sejamos, mas quem sabe. heheheehe).
O site que eu peguei é: http://blog.thiagobelem.net/gerando-senhas-aleatorias-com-php/
« Última modificação: Setembro 12, 2013, 02:24:26 pm por jorgepopel »

Kleyber

  • Expert
  • *****
  • Mensagens: 2232
    • Email
Re:Rotina Geradora de Senhas
« Responder #1 Online: Setembro 12, 2013, 08:00:32 am »
Jorge,

Muito bom. Obrigado por compartilhar.
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net

Fellipe Scaramelo

  • Novato
  • *
  • Mensagens: 30
Re:Rotina Geradora de Senhas
« Responder #2 Online: Setembro 12, 2013, 02:25:14 pm »
Parabéns Jorge.

Sempre arranjando soluções e postando para ajudar o próximo.

jorgepopel

  • Expert
  • *****
  • Mensagens: 568
    • iCentro Tecnologia e Sistemas
    • Email
Re:[Resolvido] Rotina Geradora de Senhas
« Responder #3 Online: Setembro 12, 2013, 02:29:06 pm »
hhehehehe.

Fellipe e Kleyber, eu me beneficio mais do que me doô aqui no forum.

Mas vamos buscar o equilíbrio. hehehe

Valeu pelo apoio.