Gerar senha em PHP
-
Use a função
rand()
para selecionar um índice de array aleatória para gerar uma senha aleatória em PHP -
Use as funções
openssl_random_pseudo_bytes()
ebin2hex()
para gerar senha aleatória em PHP -
Use as funções
substr()
estr_shuffle()
para gerar uma senha aleatória a partir de uma determinada string alfanumérica em PHP
Apresentaremos um método para gerar senhas aleatórias em PHP usando a função rand()
. Este método usa a combinação de letras maiúsculas e minúsculas e números para formar uma senha. A função rand()
retorna o inteiro aleatório, que é o índice do array, para escolher a combinação de senha.
Também apresentaremos outro método para gerar senhas aleatórias em PHP usando as funções openssl_random_pseudo_bytes()
e bin2hex()
.
Este artigo irá demonstrar outro método para gerar senhas aleatórias em PHP usando as funções substr()
e str_shuffle()
. Este método também usa os valores alfanuméricos fornecidos no programa para formar uma senha aleatória.
Use a função rand()
para selecionar um índice de array aleatória para gerar uma senha aleatória em PHP
Podemos usar a função rand()
para gerar uma senha aleatória em PHP. A função rand()
retorna um inteiro aleatório do intervalo dos parâmetros fornecidos. A função usa dois valores inteiros como parâmetros. Podemos definir uma sequência de letras e números de onde podemos combinar a senha. O número aleatório indexa a matriz para escolher alfabetos ou números aleatórios. Podemos repetir a função rand()
para criar a senha do comprimento desejado.
Por exemplo, crie uma variável $comb
e armazene a string compreendendo todos os alfabetos minúsculos e maiúsculos e os números de 0 a 10 como abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890
. Crie um array $pass
com a função array()
. Armazene o comprimento da string $comb
na variável $combLen
. Crie um loop for
e repita o loop oito vezes. Dentro do loop, use a função rand()
com 0
e a variável $combLen
como parâmetros e armazene o valor na variável $n
. Em seguida, atribua $comb[$n]
ao array $pass
. Fora do loop, converta o array em string usando a função implode()
.
No exemplo abaixo, geramos uma senha aleatória a partir da combinação armazenada na variável $comb
. A função rand()
pega um inteiro aleatório de 0 ao comprimento da string $comb
. O inteiro aleatório é usado como um índice para obter o valor alfanumérico aleatório da combinação. O loop é executado oito vezes e escolhe oito valores alfanuméricos aleatórios e, finalmente, forma uma senha aleatória. Verifique o Manual do PHP para aprender mais sobre a função rand()
.
Código de exemplo:
# php 7.x
<?php
$comb = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
$pass = array();
$combLen = strlen($comb) - 1;
for ($i = 0; $i < 8; $i++) {
$n = rand(0, $combLen);
$pass[] = $comb[$n];
}
print(implode($pass));
?>
Resultado:
aPsQWlzh
Use as funções openssl_random_pseudo_bytes()
e bin2hex()
para gerar senha aleatória em PHP
Podemos usar a função openssl_random_pseudo_bytes()
para gerar uma string pseudo-aleatória de bytes. Podemos especificar um valor inteiro como o parâmetro da função para definir o comprimento do número desejado de bytes a serem gerados. A função bin2hex()
converte os dados binários em representações hexadecimais. Podemos usar esta função para converter a string de bytes gerada aleatoriamente para a representação hexadecimal e formar uma senha. Este método gera a senha aleatória composta pelos valores alfanuméricos.
Por exemplo, crie uma variável $bytes
e atribua-a com a função openssl_random_pseudo_bytes()
. Especifique 4
como o parâmetro da função. Crie outra variável, $pass
, e escreva a função bin2hex()
nela. Especifique a variável $bytes
na função. Imprima a variável $pass
usando a instrução echo
.
No exemplo abaixo, o 4
na função openssl_random_pseudo_bytes()
denota o número de bytes a serem gerados aleatoriamente. A função bin2hex()
converte os bytes em equivalentes hexadecimais. A senha gerada aleatoriamente contém o comprimento de 8 porque a conversão hexadecimal de 4 bytes de string resulta em 8. Verifique o Manual do PHP para saber mais sobre a função bin2hex()
.
Código de exemplo:
#php 7.x
<?php
$bytes = openssl_random_pseudo_bytes(4);
$pass = bin2hex($bytes);
echo $pass;
?>
Resultado:
ed203eef
Use as funções substr()
e str_shuffle()
para gerar uma senha aleatória a partir de uma determinada string alfanumérica em PHP
Podemos usar o método str_shuffle()
para embaralhar aleatoriamente a string fornecida. A função embaralha a string de uma combinação de letras maiúsculas e minúsculas junto com os números de 0 a 9. Assim, ela forma uma permutação de todos os casos possíveis. Podemos usar a função substr()
para a string embaralhada para escolher uma parte de seus caracteres. Assim, podemos gerar uma senha aleatória.
Por exemplo, crie uma variável $comb
e armazene o valor da sequência abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
nela. Use str_shuffle()
para embaralhar a variável $comb
e armazená-la na variável $shfl
. Em seguida, use a função substr()
e a variável $shfl
, 0
e 8
como os parâmetros. Armazene a função em uma variável $pwd
e imprima a variável.
No exemplo abaixo, usamos o mesmo conjunto de valores alfanuméricos do primeiro método. A senha gerada aleatoriamente é formada a partir desses valores alfanuméricos. A função str_shuffle()
embaralha o valor alfanumérico e cria uma permutação aleatória. Usamos 0
e 8
na função substr()
para selecionar os oito caracteres do primeiro índice da permutação aleatória. Assim, ele gera uma senha aleatória de oito dígitos.
Exemplo de código:
#php 7.x
<?php
$comb = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$shfl = str_shuffle($comb);
$pwd = substr($shfl,0,8);
echo $pwd;
?>
Resultado:
jenZq3lY
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn