Php7-csprng

提供:Dev Guides
移動先:案内検索

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 がスローされます。
  • maxがminより小さい場合、*エラー*がスローされます。

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

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

614
-882