Перейти к содержимому

crc32()

Функция crc32() используется для вычисления контрольной суммы циклического избыточного кода (CRC) строки. Синтаксис функции crc32() выглядит следующим образом:

Синтаксис PHP для crc32()

php
int crc32 ( string $str )

Функция принимает один параметр: строку для анализа ($str). Функция crc32() возвращает беззнаковое 32-битное целое число, представляющее контрольную сумму CRC строки. (Примечание: На 32-битных системах она может возвращать знаковое целое число. Используйте sprintf('%u', crc32($str)), чтобы обеспечить согласованный беззнаковый результат на всех платформах.)

Ниже приведен пример использования функции crc32():

Пример PHP для crc32()

php
<?php
$str = "Hello, World!";
$crc = sprintf('%u', crc32($str));
echo $crc;
?>

В этом примере у нас есть строка, для которой мы хотим вычислить контрольную сумму CRC. Мы передаем строку в функцию crc32(), которая возвращает контрольную сумму CRC в виде беззнакового 32-битного целого числа.

Результат выполнения этого кода будет следующим:

console
4011902336

Как видите, функция crc32() вернула контрольную сумму CRC строки.

Ниже приведен еще один пример использования функции crc32() для проверки целостности файла:

Как использовать PHP crc32()?

php
<?php
$filename = "file_to_check.txt";
$expected_crc = 123456789;
$crc = crc32(file_get_contents($filename));
if ($crc === $expected_crc) {
    echo "The file has not been corrupted.";
} else {
    echo "The file may have been corrupted.";
}
?>

В этом примере у нас есть файл, целостность которого мы хотим проверить. Мы вычисляем контрольную сумму CRC содержимого файла с помощью функции crc32() и сравниваем ее с ожидаемым значением CRC. Если вычисленная контрольная сумма CRC совпадает с ожидаемой, мы предполагаем, что файл не был поврежден. Примечание: Если $expected_crc поступает из шестнадцатеричной строки или внешнего источника, приведите его к целому числу (например, (int) hexdec($expected_crc)) перед использованием ===.

Важные примечания:

  • CRC-32 не является криптографически стойким. Его следует использовать только для базового обнаружения ошибок, а не для целей безопасности или аутентификации.
  • Результат часто преобразуют в шестнадцатеричную строку с помощью sprintf('%08X', crc32($str)) для лучшей читаемости и стандартного форматирования.
  • Для современных приложений рекомендуется использовать hash_file() или hash() (например, SHA-256), так как CRC-32 редко применяется в новых проектах.

Функция crc32() — это полезный инструмент для вычисления контрольных сумм CRC строк и проверки целостности данных или файлов. Она может помочь сделать ваш код более универсальным и гибким при работе с целостностью данных или проверке целостности файла или сообщения. Освоив эту функцию, вы станете более квалифицированным разработчиком PHP.

Мы надеемся, что эта статья помогла вам понять работу функции crc32() в PHP. Если у вас есть вопросы или комментарии, пожалуйста, не стесняйтесь обращаться к нам.

Практика

Каково назначение функции crc32() в PHP?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.