Função hash em PHP - Como a função hash funciona em php com sintaxe?

Índice:

Anonim

Introdução à função hash em PHP?

Antes de entender o conceito de função de hash no PHP, vamos entender o que é hash?

Hashing é a transformação de um conjunto de caracteres em um valor ou chave de comprimento fixo que representa a sequência original. O hash também é usado no banco de dados para indexar e recuperar itens, porque fica mais rápido e fácil encontrar um item com a ajuda de chaves hash mais curtas do que encontrá-lo com o valor original. Também é usado em muitos algoritmos de criptografia da perspectiva dos negócios.

No PHP, funções e algoritmos de hash são usados ​​para criptografar os dados, para que a pesquisa se torne mais fácil e rápida que o valor original. As funções de hash são usadas para facilitar o processo, pois indexa o valor original e é usado sempre que necessário. É sempre uma operação de mão única. Uma boa função de hash não deve produzir a mesma saída ou valor de hash para duas ou muitas entradas diferentes inseridas pelo usuário. Se a função hash produz a mesma saída para duas entradas diferentes, esse processo é conhecido como colisão.

Como funciona a função hash e sua sintaxe?

O PHP é uma linguagem de programação do lado do servidor e sua principal função é processar a funcionalidade de back-end necessária para um aplicativo específico. Nesse processo, a autenticação desempenha um papel vital, pois as vulnerabilidades podem explorar os dados facilmente. Uma maneira de proteger os dados é armazená-los no banco de dados em sua forma original, mas isso pode levar a uma situação em que o invasor / pessoa não autorizada pode levar os dados facilmente e pode ficar comprometido. Essa situação pode ser facilmente tratada usando as funções Hashing.

As funções de hash criptografam os dados em sua forma verdadeira, portanto, sem alterar seu significado. Portanto, quando um usuário digita os dados em sua forma verdadeira, os dados são criptografados no back-end e, assim, a autenticação e a autorização do processo de dados acontecem. Os algoritmos de hash mais usados ​​são md5 (), sha1 () e poucas funções de hash. Esses algoritmos são usados ​​pelo desenvolvedor para autenticar se os dados inseridos pelo usuário estão corretos ou não para prosseguir com o processo.

1. MD5 ()

Este algoritmo é um dos poderosos algoritmos de hash que calcula o hash md5, ou seja, o hash do número hexadecimal de 16 ou 32 caracteres de uma determinada string. Essa cadeia passada será convertida no formato hexadecimal criptografado.

Sintaxe: string md5 ($ string, $ getRawOutput)

A sintaxe acima indicava a string $ como a string de entrada. A saída bruta é uma entrada opcional, pois o desenvolvedor deseja convertê-lo em 16 ou 32 bits. Se 16 bits tiver que habilitar, ele deverá ser configurado como TRUE Boolean e passado para a função. Se não estiver definido, o padrão de 32 bits será definido automaticamente.

Exemplo: md5 (EduCBA, TRUE)

2. SHA1 ()

Este algoritmo é um dos poderosos algoritmos de hash que calcula o hash sha1, ou seja, o formato binário de 20 caracteres ou o número hexadecimal de 40 caracteres de uma sequência específica. Essa cadeia passada será convertida no formato hexadecimal criptografado.

Sintaxe: string sha1 ($ string, $ getRawOutput)

A sintaxe acima indicava a string $ como a string de entrada. A saída bruta é uma entrada opcional, pois o desenvolvedor deseja que seja de 20 ou 40 bits. Se for necessário habilitar 20 bits, ele deve ser definido como TRUE Boolean e passado para a função. Se não estiver definido, o padrão de 40 bits será definido automaticamente.

Exemplo: sha1 (EduCBA, TRUE)

Função hash em PHP

A lista abaixo mostra algumas funções de hash usadas no PHP para criptografar / converter os dados do original para o formato hash.

1. Hash_equals

Essa função compara as duas seqüências de caracteres ao mesmo tempo, sejam iguais ou não. Esta função retorna TRUE quando as strings são iguais e FALSE se as strings não são iguais. Ambos os argumentos devem ser os mesmos para comparar as strings; caso contrário, ele retornará falso imediatamente, sem comparar as strings alfabeticamente e, às vezes, o comprimento da string também pode ser revelado em caso de ataque de tempo.

2. Hash_final

Esta função retorna um resumo de hash da sequência de entrada passada para esta função. Quando a saída bruta é definida como TRUE, ela fornece dados binários brutos e, quando é definida como FALSE, fornece um número hexadecimal em minúscula. Essa função retorna um resumo hexadecimal calculado da sequência como uma saída.

3. Hash_init

Esta função é usada junto com os algoritmos de hash, isto é, md5 (), sha (), etc. em uma sequência ou variável e passada para qualquer uma das funções.

4. Hash_copy

Esta função é usada para copiar o contexto de hash. A cadeia passada como uma entrada para a função é dividida em hash por um dos algoritmos usados ​​na função hash_init () e a saída correspondente seria a string dividida em hash que é passada para essa função. Esta função retorna uma forma de hash da saída fornecida pela função hash_init.

Exemplos de função hash no PHP

A seguir, é apresentada uma lista da função de hash no PHP, explicada em detalhes,

Exemplo 1

Código:

<_?php
$c = hash_init("md5");
hash_update($c, "content");
$copy_c = hash_copy($c);
echo hash_final($c);
hash_update($copy_c, "content");
echo hash_final($copy_c), "\n";
?>

Resultado:

Exemplo 2

Código:

<_?php
$expected = crypt('leela123', '$2a$07$user$');
$right = crypt('leela123', '$2a$07$user$');
$wrong = crypt('leeeela233', '$2a$07$usedwrongstring$');
var_dump(hash_equals($expected, $right));
var_dump(hash_equals($expected, $wrong));
?>

Resultado:

Exemplo 3

Código:

<_?php
$hash = hash_init('sha1');
hash_update($hash, 'This is an example of PHP Hash function');
echo hash_final($hash);
?>

Resultado:

Conclusão

Neste artigo, discutimos o que é hash e seus vários algoritmos. Além disso, discutimos algumas funções de hash usadas no PHP para criptografar os dados para evitar ataques maliciosos e vulneráveis. Devido a esses ataques, os dados não são seguros e a perda de dados ocorre. Portanto, a técnica de hash foi introduzida para que não haja perda de dados e seja protegida por vários ataques.

Artigos recomendados

Este é um guia para a Função Hashing no PHP. Aqui discutimos sua função de trabalho, sintaxe e as 4 principais funções de hash no PHP com exemplos e implementação de código. Você também pode consultar os seguintes artigos para saber mais:

  1. Tipos de funções no PHP com exemplos
  2. Como verificar o Palindrome em PHP?
  3. Classificação da matriz associativa em PHP
  4. Como converter formato de data em PHP?