PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのcrc32()関数とは?使い方とデータ整合性チェックの方法

crc32()関数は、文字列から32ビット長のCRC(巡回冗長検査)チェックサムを計算するためのPHP組み込み関数です。主にデータの整合性を検証する目的で使用され、送信前後のデータが一致しているかどうかを簡単に確認できます。

crc32()関数の概要

CRC(Cyclic Redundancy Check:巡回冗長検査)は、データ通信やファイル転送時に発生する誤りを検出するための代表的な手法です。crc32()関数を使えば、任意の文字列に対応するチェックサム値(整数)を取得できます。同じ入力に対しては常に同じ値が生成されるため、データが途中で破損・改変されていないかを検証する際に役立ちます。

構文

crc32(string $string): int

パラメータ

  • str − チェックサムを計算したい対象の文字列を指定します。

戻り値

crc32()関数は、指定された文字列のCRC32チェックサムを整数型(int)で返します。

注意: PHPの整数型のサイズは実行環境によって異なります。32ビット環境では結果が負の値として返されることがあるため、その場合は printf() や sprintf() で「%u」フォーマット指定子を使い、符号なし整数として表示すると正しい値を得られます。

使用例

以下は、crc32()関数で文字列のチェックサムを計算する基本的な例です。

<?php
    $res = crc32("This is demo text!");
    printf("%u\n", $res);
?>

出力

2903462745

別の使用例

次に、echo と printf() の両方で出力した場合の挙動を比較してみましょう。

<?php
    $s = crc32("Welcome!");
    echo 'First:'.$s."\n";
    printf("Second: %u\n", $s);
?>

出力

First: 893564114
Second: 893564114

補足:セキュリティ用途には不向き

CRC32はあくまで誤り検出用のチェックサムであり、暗号学的ハッシュ関数ではありません。改ざん検知やパスワードの保存といったセキュリティ関連の処理には、hash('sha256', ...) のような強度の高いハッシュ関数を使用することを推奨します。

  1. PHPのecho()関数とは?使い方と実例をわかりやすく解説

    echo()は、1つ以上の文字列を出力するためのPHPの基本的な言語構造です。Webページへのテキスト表示やデバッグなど、PHP開発において最も頻繁に使われる機能の一つです。 ポイント:echo()は厳密には関数ではなく言語構造のため、括弧を省略して記述できます。また、print()と比較して処理が高速であり、カンマ区切りで複数の引数を渡せる点が大きな特徴です。 構文 echo(str) パラメータ str − 出力したい文字列を指定します。カンマ(,)で区切ることで、複数の文字列を一度に出力することも可能です。 戻り値 echo()関数は戻り値を返しません(void)。そのため、式の中で

  2. PHPのcrc32()関数とは?使い方とデータ整合性チェックの方法

    crc32()関数は、文字列から32ビット長のCRC(巡回冗長検査)チェックサムを計算するためのPHP組み込み関数です。主にデータの整合性を検証する目的で使用され、送信前後のデータが一致しているかどうかを簡単に確認できます。crc32()関数の概要CRC(Cyclic Redundancy Check:巡回冗長検査)は、データ通信やファイル転送時に発生する誤りを検出するための代表的な手法です。crc32()関数を使えば、任意の文字列に対応するチェックサム値(整数)を取得できます。同じ入力に対しては常に同じ値が生成されるため、データが途中で破損・改変されていないかを検証する際に役立ちます。構文c