関数の概要
PHPの random_int 関数は、暗号学的に安全な乱数を生成するために使われます。これは、セキュリティが重要な場面、例えばパスワード生成やトークンの作成に適しています。通常の乱数関数とは異なり、予測が困難な乱数を返すため、安全性が求められる用途に最適です。
パラメータの説明
$min(int) : 生成する乱数の最小値(整数)。$max(int) : 生成する乱数の最大値(整数)。
両方のパラメータは必須で、$min は $max 以下でなければなりません。
戻り値
指定した範囲内の整数の乱数を返します。返される数は $min 以上 $max 以下で、ランダムかつ暗号学的に安全であることが保証されています。
使用例
基本的な使い方
<?php
// 1から10までの乱数を取得
$rand = random_int(1, 10);
echo $rand;
?>
このコードは1から10の間でランダムな整数を出力します。安全な乱数が必要な場合はこちらを使うのが推奨されます。
パスワード生成に利用する例
<?php
// 10文字のランダムな数字パスワードを作る
$password = '';
for ($i = 0; $i < 10; $i++) {
$password .= random_int(0, 9);
}
echo $password;
?>
この例では、0から9の数字をランダムに10回繰り返してランダムな数字パスワードを生成しています。
トークン生成に使う例
<?php
// 16進数のトークンを生成
$token = '';
for ($i = 0; $i < 32; $i++) {
$token .= dechex(random_int(0, 15));
}
echo $token;
?>
16進数の文字列をトークンとして生成します。暗号的に安全なトークンを作りたいときに便利です。
関連する関数
mt_rand()– 高速だが暗号学的には安全でない乱数生成random_bytes()– バイナリデータで乱数を生成する関数openssl_random_pseudo_bytes()– OpenSSLを使った疑似乱数生成
まとめ
random_int は暗号学的に安全な乱数を生成したい場合に最適なPHP関数です。通常の rand() や mt_rand() よりも安全性が高く、パスワード生成やトークン作成などのセキュリティ用途に適しています。数値範囲を指定して簡単に使えるため、暗号的安全性が必要な乱数生成はぜひ random_int を活用しましょう。
