2017-03-07 4 views
1

を持っていない私はちょうど打開-crypto.pharファイルをフェッチし、私のプロジェクト に入れて、私は打開のPHP - あなたのシステムは安全な乱数生成器

require_once "defuse-crypto.phar" 

use Defuse\Crypto\Key; 
use Defuse\Crypto\Crypto; 

を追加使用それを使用しようとしましたが、取得しようとしました

"あなたのシステムには安全な乱数生成器がありません。"

、それが唯一のPHP 5.4を必要と言うように、私は少し当惑しましたが、random_bytesはPHP 7+
ですそれから私はのPharファイル内paragonieライブラリに気づきました。 これを有効にするには何かする必要がありますか?私は明らかにpolyfill が必要か、それともサーバーに必要なものがあるのでしょうか?

答えて

1

いいえ、ポリ充てんを "アクティブにする"ために何もする必要はありません。Defuse名前空間内にあるものがuseになるとすぐに読み込まれます。 「エラーメッセージに

phar://path/to/defuse-crypto.phar/vendor/paragonie/random_compat/lib/random.php 

あなたを:

<?php 
require_once 'path/to/defuse-crypto.phar'; 
use Defuse\Crypto; 
var_dump(\get_included_files()); 

そして、ダンプされた配列出力では、あなたがこれを含む要素が表示されます。 あなたはあなたが後に​​を呼び出すことによってこれを確認することができます不幸にも、あなたのシステムに安全なPRNGを持っていない(またはPHPがアクセスできない)ということを意味しています。

Linuxを実行している場合は、PHPが/dev/urandomにアクセスできることを確認してください。

+0

あなたの洞察をいただきありがとう open_basedirに/ dev/urandomを追加しました。 – Gorkha