crc32

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

crc32Calcula la suma de comprobación CRC32

Descripción

crc32(string $string): int

Genera la suma de comprobación cíclica CRC32, calculada en 32 bits, y aplicada a la cadena string. Esta función se utiliza generalmente para validar la integridad de los datos durante una transmisión.

Advertencia

Debido a que el tipo entero de PHP es firmado, la mayoría de las sumas de comprobación crc32 resultan ser enteros negativos en plataformas de 32 bits. En instalaciones de 64 bits, todos los resultados de la función crc32() serán enteros positivos.

Asimismo, se debe utilizar el formateador "%u" de la función sprintf() o de la función printf() para obtener una representación en cadena de caracteres de la suma de comprobación no firmada de la función crc32() en formato decimal.

Para una representación hexadecimal de la suma de comprobación, se puede utilizar el formateador "%x" de la función sprintf() o de la función printf(), o bien las funciones de conversión dechex(), ambas soluciones se encargan de convertir el resultado de la función crc32() en un entero no firmado.

En instalaciones de 64 bits, la función también devolverá enteros negativos para valores devueltos muy grandes, pero esto romperá la conversión hexadecimal al tener una posición adicional 0xFFFFFFFF########. Sabiendo que la representación decimal parece ser el caso más ampliamente utilizado, se ha decidido no romperla incluso si esto rompe directamente la comparación decimal en el 50% de los casos al pasar de 32 a 64 bits.

Con perspectiva, el hecho de que la función devuelva un entero quizá no fue la mejor idea, y devolver desde el principio una representación hexadecimal en forma de cadena de caracteres (tal como hace la función md5()), habría sido una mejor solución.

Para una solución más duradera, se puede recurrir a la función genérica hash(). hash("crc32b", $str) devolverá la misma cadena de caracteres que str_pad(dechex(crc32($str)), 8, '0', STR_PAD_LEFT).

Parámetros

string

Los datos.

Valores devueltos

Devuelve la suma de comprobación crc32 de la cadena string, en forma de un entero.

Ejemplos

Ejemplo #1 Mostrar una suma de comprobación CRC32

Este ejemplo ilustra cómo mostrar la suma de comprobación con la función printf():

<?php
$checksum
= crc32("Le vif zéphyr jubile sur les kumquats du clown gracieux.");
printf("%u\n", $checksum);
?>

Ver también

  • hash() - Genera un valor de hachado (huella digital)
  • md5() - Calcula el md5 de un string
  • sha1() - Calcula el sha1 de un string