質問: $_POST['password']; if(!password_verify($inputPasswordString, $passwordHash)){ throw new Exception("password error."); } ``` 念のため、元のパスワード文字列と、ハッシュ化文字列をソース上に記述し検証しましたが、やはり異なる環境でハッシュ化されたものは、別サーバー上では検証に失敗しております。 password_hash及びpassword_verifyは同一環境上でなければ一致しないものなのでしょうか。 ドキュメントを読む限りはハッシュ化された情報上にsaltや暗号化ロジックを含み情報が入っており、環境に依存せず利用できるとの認識です。 なお、サーバー群(A)はPHP7系ですが、サーバー群(B)はPHP5系です。 これが影響しているのでしょうか?
回答: 試みに、PHP 7.1.0で作成したハッシュ値をPHP 5.5.0 で検証してみましたが、ちゃんと動作するようです。もう少し詳細の情報がないと、原因の推測が難しいと思います。 ``` $ cat password_hash.php