Função php senha_hash

Função php senha_hash
A senha do usuário de qualquer aplicativo é muito importante para manter o aplicativo seguro de diferentes ataques. Muitas maneiras existem no PHP para gerar uma senha segura para tornar o aplicativo mais seguro. A função Password_hash () é uma maneira de criar um novo hash de senha usando o algoritmo de hash unidirecional. A sintaxe desta função é dada abaixo.

Sintaxe:

String | False Password_hash (String $ Senha, String | Int | Null $ Algo [, Array $ Options = []])

O primeiro argumento é obrigatório e é usado para assumir o valor da string que será hashed.

O segundo argumento é obrigatório e é usado para pegar o número inteiro ou string que se refere a um algoritmo, que será usado para criar o hash de senha. Atualmente, esta função suporta os seguintes algoritmos.

Password_default:

Ele usa o algoritmo BCRYPT para gerar o hash de senha.

Password_BCrypt:

Ele usa o algoritmo Crypt_blowfish para gerar o hash de senha.

Password_argon2i:

Ele usa o algoritmo de hash argon2i para gerar o hash de senha e pode ser usado se o PHP tiver sido compilado com o suporte do Argon2.

Password_argon2id:

Ele usa o algoritmo de hash argon2id para gerar o hash de senha e pode ser usado se o PHP tiver sido compilado com o suporte do argon2.

O terceiro argumento é opcional e é usado para definir uma matriz que contém as opções suportadas do algoritmo usado.

As seguintes opções são suportadas pelo algoritmo Password_BCrypt.

sal:

Esta opção está depreciada agora. O valor do sal que é gerado por padrão é melhor usar.

custo:

É usado para definir o custo do algoritmo que deve ser usado. O valor padrão é 10.

As seguintes opções são suportadas pelos algoritmos Password_argon2i e Password_argon2id.

Memory_Cost:

É usado para definir a memória máxima em KB que pode ser usada para gerar o hash de senha usando o hash argon2.

time_cost:

É usado para definir a quantidade máxima de tempo que pode ser usada para gerar o hash de senha usando o hash argon2.

tópicos:

É usado para definir o número de threads para gerar o hash de senha usando o hash argon2.

A função retorna a senha hashed no sucesso ou false na falha.

Password_hash () Exemplos de função

Os usos da função Password_hash () para criar senhas de hash foram na próxima parte do tutorial.

Exemplo 1: Crie uma senha de hash usando o algoritmo de hash padrão

Crie um arquivo PHP com o seguinte script que gerará um valor de hash de uma senha usando a função Password_hash (), e o algoritmo de hash padrão foi usado aqui. As seqüências de senha original e hashed serão impressas como a saída do script.

// Defina o valor da senha
$ senha = 'secretPassword';
// Gere a senha de hash com base no algoritmo padrão
$ hashed_password = senha_hash ($ senha, senha_default);
// Imprima a senha original e hashed
eco "a senha original: $ senha";
eco "
A senha de hash usando o algoritmo padrão: $ hashed_password";
?>

Saída:

A saída a seguir aparecerá após a execução do script acima.

Exemplo 2: Crie senha de hash usando o valor de custo e o algoritmo Password_BCrypt

Crie um arquivo php com o seguinte script que gerará um valor de hash de uma senha usando a função Password_hash (). O algoritmo Password_BCrypt e o valor de custo foram usados ​​na função Password_hash () para gerar a senha de hashed. A sequência de senha original e hashed será impressa como a saída do script.

// Defina o valor da senha
$ senha = 'secretPassword';
// Defina o valor de custo para o algoritmo Password_BCrypt
$ option = ["custo" => 5];
// Gere a senha de hash com base no algoritmo padrão
$ hashed_password = senha_hash ($ senha, senha_bcrypt, $ option);
// Imprima a senha original e hashed
eco "a senha original: $ senha";
eco "
A senha de hash usando senha_bcrypt: $ hashed_password";
?>

Saída:

A saída a seguir aparecerá após a execução do script acima.

Exemplo 3: Crie uma senha de hash usando o algoritmo Passway_argon2i

Crie um arquivo PHP com o seguinte script que gerará um valor de hash de uma senha usando a função Password_hash (). O algoritmo Password_argon2i foi usado na função Password_hash () para gerar a senha de hashed. As seqüências de senha original e hashed serão impressas como a saída do script.

// Defina o valor da senha
$ senha = 'secretPassword';
// Gere a senha de hash com base no algoritmo padrão
$ hashed_password = senha_hash ($ senha, senha_argon2i);
// Imprima a senha original e hashed
eco "a senha original: $ senha";
eco "
A senha hashed usando senha_argon2i: $ hashed_password";
?>

Saída:

A saída a seguir aparecerá após a execução do script acima.

Exemplo-4: Usando a função Password_hash () com Password_verify ()

Crie um arquivo php com o seguinte script para verificar a senha de hash usando a função Passway_Verify () após gerar a senha de hash de uma string dados usando a função Password_hash (). A senha será retirada do parâmetro URL e verificou se a senha é válida usando o valor da senha e os valores de senha com hash nos argumentos da função senha_verify (). Se essa função retornará true, a senha será válida; Caso contrário, a senha é inválida.

// Defina o valor da senha
$ senha = 'secretPassword';
// Gere a senha de hash com base no algoritmo padrão
$ hashed_password = senha_hash ($ senha, senha_default);
if (isset ($ _ get ['senha'])))

// atribui a senha fornecida do URL
$ v_password = $ _get ['senha'];
// Verifique a validade da senha usando a função Passway_Verify ()
if (senha_verify ($ v_password, $ hashed_password)))
a senha do eco é válida.';
outro
A senha do eco é inválida.';

outro
eco "a senha não é dada.";
?>

Saída:

Depois de executar o script acima sem o parâmetro URL, a seguinte saída será exibida.

http: // localhost/php/pass4.php

A saída a seguir aparecerá após a execução do script acima com o valor do parâmetro URL, 'SecretPassword ', e a senha de hash foi gerada para esse valor no script. Então, a senha é válida.

http: // localhost/php/pass4.php?senha = SecretPassword

A saída a seguir aparecerá após a execução do script acima com o valor do parâmetro URL, 'segredo' inválido.

http: // localhost/php/pass4.php?senha = segredo

Conclusão

Diferentes maneiras de criar uma senha de hash usando a função Password_hash () foram mostradas nos exemplos deste tutorial para ajudar os usuários do PHP a aplicar essa função corretamente em seu script.