2016-12-08 42 views
2

私はPHP 5.6.23-0 + deb8u1を使用していますし、私のコードでは、私は機能random_bytesを使いたいが、私はこのエラーを取得:致命的なエラー:)(未定義の関数random_bytesに呼び出し

Fatal error: Call to undefined function random_bytes()

私が欲しいです私は何かをインポートする必要があるかどうかを知るために、このバージョンのphpには含まれていません。この場合、どうやってそれを置き換えることができますか?マニュアルに記載されているように

+0

注:*この機能はPHP 7.0で追加されましたが、PHP 5.2から5.6では»ユーザーランドの実装が利用可能です。マニュアルの男性 –

答えて

6

random_bytes()はPHP 7.で

を導入されました。

Note: Although this function was added to PHP in PHP 7.0, a » userland implementation is available for PHP 5.2 to 5.6, inclusive.

あなたがバックポートとしてそのユーザランドの実装を使用することができます。https://github.com/paragonie/random_compat

+0

を読むことは何もPHPに何ですか? – AgainMe

+1

PHPで利用可能なものは、同じように動作せず、環境によっては失敗する可能性があります。私は個人的には、このライブラリがそこで最高のソリューションであることを保証することができます。手動でインストールし、それをローカルコードとして扱うオプションがあります。サードパーティの依存関係を追跡したくない場合は、これを行います。 – Narf

-1

random_bytesがPHP7で導入されました(reference )。

また、古いPHPバージョンの場合は、mt_randを使用してランダム値を生成するか、またはrand()を使用してランダムな整数を生成することができます。

+0

'mt_rand()'はその名前が暗示しているにもかかわらず、ランダムではなく、セキュリティ上重要なものには適していません。これは 'random_bytes()'が作られた理由の大部分です。 – Narf

+0

@Narf opは、問題のセキュリティについて言及していません。 'mt_rand'は、最小値と最大値を与えることでランダムを生成します。とにかくなぜあなたは投票しますか:P – Hassaan

+0

私の前のコメントはdownvoteについて説明しています - 'mt_rand()'が悪いことを示唆しています。そして、いいえ、 'rand()'はランダムでもありません...あなたは、ますます悪いアドバイスを追加しています。 – Narf

関連する問題