2016-06-13 8 views
5

ユーザー登録サービスプロバイダを作成していて、password_hash関数を使用して、指定されたユーザーのパスワードをハッシュします。私はPHPマニュアルから理解されるようにPHP問題:password_hash関数が塩を生成できません。

public function generateHash($string) 
    { 
     return password_hash($string, PASSWORD_BCRYPT); 
    } 

、我々は塩を生成し、代わりにpassword_hash機能が改善されたセキュリティのためにそれの世話を聞かせてはいけません。以下は、ハッシュ化された文字列を作成するために使用されるコードの部分があります。私は、新しいユーザーを作成しようとすると、しかし、私は警告の下に取得する:

警告:password_hash():

塩を生成することができませんアプリケーションが無いユーザーを作成しますが、原因上記の問題に私は、誰かが右に私を指すことができる場合、それは非常にいただければ幸い私の開発環境で

をPHPバージョン7.0.4/Zendのサーバーを使用していたハッシュが生成され、パスワードは常にデータベース

に空白になります方向

+4

お使いのオペレーティングシステムはどちらですか? – jszobody

+0

空のパスワードは引き続きハッシュを返します。 –

+3

検索すると、このエラーメッセージが生成されるPHPソース内の唯一の場所は、[ランダムバイトの生成に失敗しました](https://github.com/php/php-src/blob/c72282a13b12b7e572469eba7a7ce593d900a8a2/ext/standard/password)です。 c#L125-L126)。 [random_bytes](http://php.net/random_bytes)を見ると、PHPがランダム性を生成しようとするさまざまな方法を見ることができます。私はそれらのトラブルシューティングを開始するだろう。 – jszobody

答えて

0

私は現在のphp7のインストールで問題が判明しました。私はPHP5.6に切り替えて、すべて正常に動作します。

+3

実際に問題が実際に何を助けてくれるのかまだ分かっていないので、それは聞こえて良いです: -/ – Martin

+0

これを引き起こす原因を発見できればおそらくサーバー?)あなたはあなたの答えにそれを加えることができますか?乾杯。 – Martin

+0

この関数をhttp://php.net/manual/en/function.random-bytes.phpと呼んでください。 塩を生成するためにランダムなデータを収集できない理由を説明して例外をスローする必要があります。 – robinkunde

関連する問題