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