crc32

関数の概要

PHPの crc32 関数は、文字列のCRC32(循環冗長検査32ビット)ハッシュ値を計算するための関数です。CRC32はデータの整合性検証や簡易的なハッシュ関数としてよく使われています。特にファイルの検証や文字列の一意性チェックなどで利用されます。

パラメータの説明

  • string(必須):ハッシュ値を取得したい対象の文字列を指定します。

戻り値

crc32 関数は、引数に指定した文字列のCRC32ハッシュ値を整数として返します。ただし、返される値は符号付き32ビット整数として処理されるため、大きな値の場合は符号が負になることがあります。正確に符号なし整数値を扱いたい場合は、他の方法(例えば sprintf と組み合わせるなど)で処理します。

使用例

基本的な使い方

<?php
$string = "Hello, World!";
$hash = crc32($string);
echo $hash;
?>

この例では「Hello, World!」という文字列のCRC32ハッシュ値を計算して表示します。

符号なし整数として表示する方法

<?php
$string = "Hello, World!";
$hash = crc32($string);
printf("%un", $hash);
?>

通常の出力では負の値になる可能性があるため、printf のフォーマット指定子「%u」を使い、符号なしの整数として正しく表示しています。

配列内の複数文字列のCRC32を取得する例

<?php
$strings = ["apple", "banana", "cherry"];
foreach ($strings as $str) {
    echo $str . " : " . sprintf("%u", crc32($str)) . "n";
}
?>

配列に含まれる複数の文字列それぞれのCRC32値を計算し、符号なし整数の形で表示しています。

関連する関数

  • hash() – 多様なアルゴリズムによるハッシュ計算を行う汎用関数
  • md5() – MD5ハッシュ計算を行う関数
  • sha1() – SHA-1ハッシュ計算を行う関数
  • sprintf() – 文字列の書式設定。符号なし整数表示に便利

まとめ

crc32 はPHPで簡単に文字列のCRC32ハッシュを計算できる関数で、データの整合性チェックや一意性を簡易的に判断する際に有用です。ただし、返されるハッシュ値が符号付き整数のため、そのまま表示すると負の値になることもあります。符号なしの数値として取り扱いたい場合は sprintf の「%u」指定子を使って表示を調整するとよいでしょう。また、より安全で複雑なハッシュが必要な場合は hash() 関数の利用も検討してください。