PHP 7-CSPRNG

PHP 7では、クロスプラットフォームの方法で暗号的に安全な整数と文字列を生成するために、次の2つの新しい関数が導入されています。

  • random_bytes() −暗号的に安全な疑似ランダムバイトを生成します。

  • random_int() −暗号的に安全な疑似乱数整数を生成します。

random_bytes()

random_bytes()は、ソルト、キー、または初期化ベクトルを生成する場合など、暗号化の使用に適した任意の長さの暗号化ランダムバイトの文字列を生成します。

構文

string random_bytes ( int $length )

パラメーター

  • length −バイト単位で返されるランダム文字列の長さ。

戻り値

  • 暗号的に安全なランダムバイトの要求された数を含む文字列を返します。

エラー/例外

  • 適切なランダム性のソースが見つからない場合、例外がスローされます。

  • 無効なパラメータが指定された場合、 TypeError スローされます。

  • 無効な長さのバイトが指定された場合、エラーがスローされます。

<?php
   $bytes = random_bytes(5);
   print(bin2hex($bytes));
?>

次のブラウザ出力を生成します-

54cc305593

random_int()

random_int() 偏りのない結果が重要な場合に使用するのに適した暗号化ランダム整数を生成します。

構文

int random_int ( int $min , int $max )

パラメーター

  • min −返される最小値。 PHP_INT_MIN 以上。

  • max -返される最大値。これは以下である必要があります。 PHP_INT_MAX

戻り値

  • minからmaxまでの範囲の暗号的に安全なランダム整数を返します。

エラー/例外

  • 適切なランダム性の原因が見つからない場合は、 Exception スローされます。

  • 無効なパラメータが指定された場合、 TypeError スローされます。

  • 最大値が最小値未満の場合、 Error スローされます。

<?php
   print(random_int(100, 999));
   print("");
   print(random_int(-1000, 0));
?>

次のブラウザ出力を生成します-

614
-882