'portable_hashes'がオンになっています。 私は何らかの理由でそれが生成するハッシュが常に同じではないことを認識しましたが、 'CheckPassword'を通過すると常に有効であると返します。私はまた、 'PHP_VERSION'がハッシュの生成に使用されていることに気付きました - これら2つのものを組み合わせると私は心配しています...ポータブルはどのように移植可能ですか?サーバ、Linux、Windows、64ビット、32ビットなどの間でハッシュ(ユーザデータベースに保存されている)を移動しても、それを検証できますか?パスワードをもう検証できないようにするためには何が必要でしょうか?複数のサーバー間でphpassを使用することはどのくらい安全ですか?
phpassを私のフレームワークのパスワードのために使用しているために私が尋ねる理由は、私のサイトのいくつかに電力を供給します。その多くは現在数千人のユーザーを抱えています。それらを別のサーバに、そしてもちろんPHPをアップグレードしてください。私はまた、lighthttpdなどのようにApacheの1つまたは2つをApacheから切り離すことができます。言うまでもなく、私はいつもサポート悪夢を持つつもりで、誰にも新しいパスワードを電子メールで送ること(それは本当に安全ではない)以外の方法で修正することはできません。
パスワードが無効になる可能性が少しでもある場合、自分のパスワードハッシュジェネレータを作成するにはどのような手順が必要ですか?私はすでに16バイトのランダムな塩(Per-user)を使用していますが、それ以外の唯一の問題はストレッチです - そうですか?私はPHP_VERSION
で見ることができます
申し訳ありませんが、私はあなたによって何かを実行させてください...私は私の個人的なテストマシン(Win7、WAMP)でPHP 5.3.3を実行し、私のサーバーのほとんどがcPanelでCentOSを実行しています...彼らはすべて5.2.xを持っていますが、もう一度 - 彼らはCentOSです。これを知っている - ポータブルではないモードで排他的に実行するのは大丈夫でしょうか?今は私のテストマシンと私のサーバーの間でデータベース全体を行き来するので、いくつかのハッシュはCentOS php 5.2.xマシンで生成され、他のハッシュはWin7 PHP 5.3.3マシンで生成されます。結局、私は共有ホスト上でテストするかもしれません - それは何ですか? – Jon
@ジョン:私はまったく同じセットアップ(CentOS 5.2サーバ、開発者のWin7)を持っています。 'CRYPT_BLOWFISH == 1' ** OR ** PHPバージョンが5.3+の定数であれば、あなたは大丈夫です。あなたのCentOS PHP 5.2.xサーバ( 'var_dump(CRYPT_BLOWFISH)')で 'CRYPT_BLOWFISH'をチェックしてください。結果が「1」の場合、あなたは金色です。 1台のマシン上でbcryptを使って生成されたハッシュは同じです...問題は、bcryptが利用できなかったときです。 –
個人的には、WHMのEasyApacheを使用してPHPバージョンをアップグレードしてください。 –