crc32

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

crc32Calcula el polinomio crc32 de una cadena

Descripción

crc32(string $str): int

Genera el polinomio de comprobación de redundancia cíclica de 32 bits de longitud de str. Este valor se usa por lo general para validar la integridad de los datos transmitidos.

Advertencia

Dado que el tipo integer de PHP es con signo, muchas comprobaciones de suma de crc32 resultarán en números enteros negativos en plataformas de 32 bits. Aunque en instalaciones de 64 bits, todos los resultados de crc32() serán enteros positivos.

Por lo tanto, es necesario usar el formateador "%u" de sprintf() o printf() para obtener la representación de cadena de la comprobación de suma de crc32() sin signo en formato decimal.

Para una representación hexadecimal de la comprobación de suma se puede usar el formateador "%x" de sprintf() o printf() , o las funciones de conversión de dechex(), en donde se ha de tener cuidado en ambos casos de convertir el resultado de crc32() a un entero sin signo.

Las instalaciones de 64 bits también devuelven enteros negativos para resultados de valores mayores que los considerados, aunque rompería la conversión a hexadecimal ya que los valores negativos tendrían un índice 0xFFFFFFFF######## extra. Ya que las representaciones hexadecimales parecen ser el caso de uso más común, hemos decidido no deshacernos de ellas incluso si rompe la comparación decimal directa en alrededor del 59% de los casos donde se convierten de 32 a 64 bits.

Mirando atrás, el tener una función que devolvía un entero quizás no era la mejor idea y el devolver una representación de cadena hexadecimal de inmediato (como lo hace, p.ej., md5()) podría haber sido un plan mejor con el que comenzar.

Para una solución más portable se podría considerar también el hash() genérico. hash("crc32b", $str) devolverá la misma cadena que str_pad(dechex(crc32($str)), 8, '0', STR_PAD_LEFT).

Parámetros

str

Los datos.

Valores devueltos

Devuelve la suma de verificación CRC32 de str como un integer.

Ejemplos

Ejemplo #1 Mostrar una suma de verificación crc32

Este ejemplo muestro cómo imprimir una suma de verificación convertida con la función printf():

<?php
$suma 
crc32("El veloz murcielago hindu comia feliz cardillo y kiwi.");
printf("%u\n"$suma);
?>

Ver también

  • hash() - Generar un valor hash (resumen de mensaje)
  • md5() - Calcula el 'hash' md5 de un string
  • sha1() - Calcula el 'hash' sha1 de un string