Introducción a la función de hash en PHP?

Antes de comprender el concepto de función hash en PHP, comprendamos qué es hashing.

El hash es la transformación de un conjunto de caracteres en un valor o clave de longitud fija que representa la cadena original. El hash se usa en la base de datos también para indexar y recuperar elementos porque es más rápido y fácil encontrar un elemento con la ayuda de claves hash más cortas que encontrarlo con el valor original. También se utiliza en muchos de los algoritmos de cifrado desde una perspectiva empresarial.

En PHP, las funciones de hash y los algoritmos se utilizan para cifrar los datos para que la búsqueda sea más fácil y rápida que el valor original. Las funciones hash se usan para facilitar el proceso, ya que indexa el valor original y se usa en cada momento donde sea necesario. Siempre es una operación unidireccional. Una buena función hash no debe producir la misma salida o valor hash para dos o muchas entradas diferentes ingresadas por el usuario. Si la función hash produce la misma salida para dos entradas diferentes, este proceso se conoce como colisión.

¿Cómo funciona la función de hash y su sintaxis?

PHP es un lenguaje de programación del lado del servidor y su función principal es que tiene que procesar la funcionalidad de back-end requerida para una aplicación en particular. En este proceso, la autenticación juega un papel vital ya que las vulnerabilidades pueden explotar los datos fácilmente. Una forma de proteger los datos es almacenarlos en la base de datos en su forma original, pero esto podría llevar a una situación en la que el intruso / persona no autorizada puede tomar los datos fácilmente y puede verse comprometida. Esta situación se puede manejar fácilmente utilizando las funciones de Hashing.

Las funciones hash encriptan los datos en su forma verdadera, por lo tanto, sin cambiar su significado. Entonces, cuando un usuario ingresa los datos en su forma verdadera, los datos se cifrarán en el back-end y, por lo tanto, se realizará la autenticación y autorización del proceso de datos. Los algoritmos hash más utilizados son md5 (), sha1 () y algunas funciones hash. El desarrollador utiliza estos algoritmos para autenticar que los datos ingresados ​​por el usuario son correctos o no para continuar con el proceso.

1. MD5 ()

Este algoritmo es uno de los potentes algoritmos de hash que calcula el hash md5, es decir, el hash de un número hexadecimal de 16 o 32 caracteres de una cadena en particular. Esta cadena pasada se convertirá en la forma hexadecimal cifrada.

Sintaxis: string md5 ($ string, $ getRawOutput)

La sintaxis anterior indica la cadena $ como cadena de entrada. La salida sin formato es una entrada opcional, ya que el desarrollador desea convertirla a 16 o 32 bits. Si 16 bit tiene que habilitarlo, debe establecerse TRUE Boolean y pasar a la función. Si no se establece, el valor predeterminado de 32 bits se establece automáticamente.

Ejemplo: md5 (EduCBA, VERDADERO)

2. SHA1 ()

Este algoritmo es uno de los potentes algoritmos de hash que calcula el hash sha1, es decir, el hash del formato binario de 20 caracteres o el número hexadecimal de 40 caracteres de una cadena particular. Esta cadena pasada se convertirá en la forma hexadecimal cifrada.

Sintaxis: string sha1 ($ string, $ getRawOutput)

La sintaxis anterior indica la cadena $ como cadena de entrada. La salida sin formato es una entrada opcional, ya que el desarrollador quiere que sea de 20 o 40 bits. Si 20 bit tiene que habilitarse, debe establecerse TRUE Boolean y pasar a la función. Si no se establece, el valor predeterminado de 40 bits se establece automáticamente.

Ejemplo: sha1 (EduCBA, TRUE)

Función de hash en PHP

Las siguientes son algunas funciones de hash utilizadas en PHP para encriptar / convertir los datos del original al formato hash.

1. Hash_equals

Esta función compara las dos cadenas al mismo tiempo, sean iguales o no. Esta función devuelve VERDADERO cuando las cadenas son iguales y FALSO si las cadenas no son iguales. Ambos argumentos deben ser los mismos para comparar las cadenas; de lo contrario, devolverá inmediatamente falso sin siquiera comparar las cadenas alfabéticamente y, a veces, la longitud de la cadena también se puede revelar en caso de un ataque de sincronización.

2. Hash_final

Esta función devuelve un resumen de hash de la cadena de entrada pasada a esta función. Cuando la salida sin formato se establece en VERDADERO, proporciona datos binarios sin formato y cuando se establece en FALSO da un número hexadecimal en minúsculas. Esta función devuelve un resumen hexadecimal calculado de la cadena como salida.

3. Hash_init

Esta función se usa junto con los algoritmos de hash, es decir, md5 (), sha (), etc. Esta función junto con los algoritmos de hash produce una salida para usar con hash_update (), hash final (), etc. La salida de hash_init se almacena en una cadena o variable y se pasa a cualquiera de las funciones.

4. Hash_copy

Esta función se usa para copiar el contexto de hash. La cadena que se pasa como entrada a la función se codifica mediante uno de los algoritmos utilizados en la función hash_init () y la salida correspondiente sería la cadena codificada que se transfiere a esta función. Esta función devuelve una forma hash de la salida dada por la función hash_init.

Ejemplos de función hash en PHP

La siguiente es una lista de funciones hash en PHP explicada en detalle,

Ejemplo 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";
?>

Salida:

Ejemplo # 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));
?>

Salida:

Ejemplo # 3

Código:

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

Salida:

Conclusión

En este artículo, discutimos qué es el hashing y sus diversos algoritmos. Además, discutimos algunas funciones de hash utilizadas en PHP para cifrar los datos para evitar ataques maliciosos y vulnerables. Debido a estos ataques, los datos no son seguros y se produce la pérdida de datos. Por lo tanto, se introdujo la técnica de hash para que no haya pérdida de datos y esté asegurada por varios ataques.

Artículos recomendados

Esta es una guía para la función Hashing en PHP. Aquí discutimos su funcionamiento, sintaxis y la función de hash top 4 en PHP con ejemplos e implementación de código. También puede consultar los siguientes artículos para obtener más información.

  1. Tipos de funciones en PHP con ejemplos
  2. ¿Cómo verificar Palindrome en PHP?
  3. Clasificación de la matriz asociativa en PHP
  4. ¿Cómo convertir el formato de fecha en PHP?