O objeto Tools é uma ferramenta de apoio geral, ou seja, trata-se de um objeto que contém métodos comuns com funções de filtro, tratamento, criptografia e afins.
Por padrão, este objeto contém os seguintes métodos estáticos:
dd($data, $dump = false)
- Exibe os dados;hashHX($password, $salt = null)
- Criptografa a senha do usuário no padrão HXPHP;filteredName($input)
- Aplica o camelize;filteredFileName($input)
- Trata o nome de arquivos, e;decamelize($cameled, [$sep])
- Reverte o camelize;
Um dos recursos do HXPHP mais utilizados para sistemas de cadastro e login é a criptografia de senhas.
- Gerando o
hash
e osalt
:
\HXPHP\System\Tools::hashHX('senhabruta');
/**
* Retorno:
* array (
* 'salt' => '...',
* 'password' => '...'
* );
*/
O salt
é um valor randômico que é concatenado com a senha bruta informada para gerar o hash
.
- Gerando o
hash
para validação com a senha bruta e umsalt
já definido:
$senhaCriptografada = \HXPHP\System\Tools::hashHX('senhabruta', $user->salt);
if ($user->password === $senhaCriptografada['password'])
return 'Usuário autenticado';
Como o salt
é um valor aleatório, se o mesmo não for informado não será possível obter um hash
idêntico para comparação mesmo que a senha informada pelo usuário esteja correta. Portanto, é necessário informar o salt
que foi gerado para o hash
armazenado no banco de dados, isto é, ambos os valores devem ser armazenados utilizados conforme o exemplo acima.