openssl_password_hash

(PHP 8 >= 8.4.0)

openssl_password_hashCria um hash de senha usando a implementação Argon2 do OpenSSL

Descrição

openssl_password_hash(string $algo, string $password, array $options = []): string

Cria um hash de senha usando a implementação Argon2 do OpenSSL. Esta é uma alternativa à função password_hash() que usa o OpenSSL como backend, que pode oferecer aceleração de hardware em algumas plataformas.

Esta função só está disponível quando o PHP é compilado com suporte a OpenSSL que inclui Argon2 (HAVE_OPENSSL_ARGON2).

Parâmetros

algo

O algoritmo de hash de senha. Valores suportados: "argon2id" e "argon2i".

password

A senha do usuário.

options

Um array associativo de opções. Chaves suportadas:

  • memory_cost - Memória máxima (em KiB) que pode ser usada para computar o hash
  • time_cost - Tempo máximo que pode ser usado para computar o hash
  • threads - Número de threads a ser usado para computar o hash

Valor Retornado

Retorna o hash de senha como uma string.

Erros/Exceções

Lança um ValueError se algo não for um dos valores suportados ("argon2i" ou "argon2id").

Lança um Error se a operação de hash falhar por um motivo desconhecido.

Registro de Alterações

Versão Descrição
8.4.0 Função adicionada.

Exemplos

Exemplo #1 Exemplo de openssl_password_hash()

<?php
$hash
= openssl_password_hash('argon2id', 'my-secret-password');
echo
$hash;
?>

O exemplo acima produzirá algo semelhante a:

$argon2id$v=19$m=65536,t=4,p=1$c29tZXNhbHR2YWx1ZQ$valordehash...

Exemplo #2 openssl_password_hash() com opções personalizadas

<?php
$hash
= openssl_password_hash('argon2id', 'my-secret-password', [
'memory_cost' => 65536,
'time_cost' => 4,
'threads' => 1,
]);
?>

Veja Também