Gerar senha no PHP

Provavelmente vocês algum dia já esqueceram a senha de acesso a algum site, e precisaram clicar naquele famoso link "Recuperar Senha".

E quando clicamos, é solicitado o e-mail utilizado dirante o cadastro, para que seja enviada uma nova senha, para nosso e-mail, e esta senha, normalmente não é a senha que cadastramos, isto porque, o sistema teve que reiniciar sua senha e gerar uma nova senha, já que você a esqueceu.

Por motivos de segurança os sites guardam as senhas em banco de dados criptografada (usando MD5, crypt, etc).

Neste exemplo, veremos como utilizar o PHP[bb] para gerar uma senha aleatória, randômica, em nosso site.

NOTA: no código abaixo, estarei utilizando a numeração nas linhas apenas para melhor visualização e explicação do código. Não digitem estes números de linhas em seu código.

1. <?php

2.

3. $CaracteresAceitos = 'abcdxywzABCDZYWZ0123456789';

4.

5. $max = strlen($CaracteresAceitos)-1;

6.

7. $password = null;

8.

9. for($i=0; $i < 8; $i++) {

10.

11. $password .= $CaracteresAceitos{mt_rand(0, $max)};

12.

13. }

14.

15. echo $password;

16.

17. ?>



Vamos a explicação:

Linha 1:

Abrimos a TAG do PHP

Linha 3:

Criamos uma variável de nome $CaracteresAceitos que irá armazenar letras e números necessários para gerar nossa senha.

Linha 5:

Criamos a variável $max e utilizamos a função "strlen" para contar quantos caracteres a variável $CaracteresAceitos tem.

Linha 7:

Criamos a variável $password e atribuímos a ela o valor null

Linha 9:

Criamos um loop para que nossa senha tenha o tamanho máximo de 8 caracteres

Linha 11:

Concatenamos (.=) a variável $CaracteresAceitos em nossa variável $password, e utilizamos a função mt_rand() para gerar uma senha aleatória, baseada no conteúdo da variável $CaracteresAceitos

Linha 13:

Fechamos a chave do loop

Linha 15:

Utilizamos o echo para exibir o novo valor da variável $password, gerada de forma randômica

Linha 17:

Fechamos a TAG do PHP.

Créditos: Oberaldo Bull

Posted by Programador ASP

2 comentários:

  1. Muito bom os artigos!! Muito uteis! Parabéns!!
    Bruno

    ResponderExcluir
  2. e como que faço pra gerar uma senha entre 1 e 4.000 no ASP, mas que não esteja cadastrada no BD? Isso é pra um sorteio que o pessoal se cadastra no site e ganha um numero pra concorrer. Pra gerar o número utilizei um random.


    mas a questão é como verificar se no banco esse numero já existe

    meu email (visualturbo@gmail.com)

    ResponderExcluir