Palavra:   

Revista PHP / PHP

Flávia Jobstraibizer

Analista de sistemas, DBA Mysql, PostgreSQL, Oracle, SQLServer e Firebird. Desenvolvedora de sistemas, e administradora de servidores FreeBSD. Conheça o site www.flaviajobs.com.br

Gerando uma senha aleatória

Item indispensável quando se trata de manter confidenciais, informações como a senha do usuário, este artigo trata da geração de uma senha dinâmica e aleatória para o usuário.
Com base em um algoritmo, a função que veremos, criará uma senha randômica, sendo os dois primeiros caracteres alfa-numéricos e os dois últimos caracteres, numéricos.
Exemplo: MG79 (senha gerada aleatóriamente)

Criei um arquivo chamado senhaaleatoria.php

Nele, temos
<?php
// criando e abrindo a função
function GeradorSenha($tipo="L L N N") {
// o explode retira os espaços presentes entre as letras (L) e números (N)
$tipo = explode(" ", $tipo);

// Criação de um padrão de letras e números (no meu caso, usei letras maiúsculas
// mas você pode intercalar maiusculas e minusculas, ou adaptar ao seu modo.)

$padrao_letras = "A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|X|W|Y|Z";
$padrao_numeros = "0|1|2|3|4|5|6|7|8|9";

// criando os arrays, que armazenarão letras e números
// o explode retire os separadores | para utilizar as letras e números

$array_letras = explode("|", $padrao_letras);
$array_numeros = explode("|", $padrao_numeros);

// cria a senha baseado nas informações da função (L para letras e N para números)
$senha = "";
for ($i=0; $i<sizeOf($tipo); $i++) {
if ($tipo[$i] == "L") {
$senha.= $array_letras[array_rand($array_letras,1)];
} else {
if ($tipo[$i] == "N") {
$senha.= $array_numeros[array_rand($array_numeros,1)];
}
}
}
// informa qual foi a senha gerada para o usuário naquele momento
echo "A senha gerada é: " . $senha;

}

// fecha a função
GeradorSenha();

O que acontece é: a cada chamada desta página, a função trará e informará ao usuário uma nova senha, baseada nos padrões informados nas variáveis $padrao_letras e $padrao_numeros.

Você pode aumentar a quantidade de letras e números, apenas modificando esta linha, a da chamada da função:
function GeradorSenha($tipo="L L N N")
Sendo:
function GeradorSenha($tipo="L L N N L L N N")
O que daria algo como este exemplo: MG79FA14

Você pode ver este script em funcionamento, clicando aqui: http://www.flaviajobs.com.br/sistemas/revistaphp/senhaaleatoria.php

Dúvidas? Escrevam: fjferr@gmail.com

Opções de Interação