Skip to content

Latest commit

 

History

History
48 lines (34 loc) · 1.74 KB

13-tools.md

File metadata and controls

48 lines (34 loc) · 1.74 KB

Tools {#tools}

Nesta seção você irá conhecer o objeto auxiliar Tools.

Métodos auxiliares {#metodos-auxiliares}

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;

Criptografia para senhas

Um dos recursos do HXPHP mais utilizados para sistemas de cadastro e login é a criptografia de senhas.

  • Gerando o hash e o salt:
	\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 um salt 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.