2012-01-17 18 views
0

私は自分のプロジェクトをlocalhostから自分のホストに入れ、同じ(phpass)関数を使って結果が異なり、返される文字列の長さも異なっています。 (そしてすべてがlocalhost btwで動作します)phpassが異なる結果を返す

オンラインでは、同じ関数がfalseを返します。私はその問題が何であるか疑問に思っていた。

入力:

  • はlocalhost:$ 2A $ 08 $ t5joFUIbEThylj/IyUVy7.WzMZm8fmKjsy0kZc/YxgqzkbYQWnlre
  • ホスト:$ P $ 9ここ

    の結果ですQiKVfJzpRzoToBCJg8FeaDIfcAJJ61

EDIT:パスワードをポータブルにするためにTRUEフラグをオンにしましたが、まだ動作していないようです。

EDIT 2:php 4または5では動作しません。携帯モードではDIDスイッチが動作します。

答えて

2

警告:デフォルトでは、ライブラリーはポータブルではない強力なシステム固有の パスワードハッシュを生成します。これは、作成した後は ユーザデータベースをダンプして別のサーバにエクスポートできないことを意味します。この の動作は、config-fileでも変更できます。

- >Portable (PHPass) password hashes. Should I use them?

+0

今、どうすればいいのですか? (私が間違っていない場合は、PHPバージョン4.4.9と私が読んだように私は携帯モードを持っている必要があります) – BehnUm

+0

あなたは新しいパスワード&ポータブルモードでそれをテストしましたか? – MasterCassim

+0

はい、それでもfalseを返します!私は私のPHPを5(htaccessを使用して)に切り替えても、それはまだ動作しません!何かアドバイス? – BehnUm

2

私は間違っていない場合は、phpassは、それが利用可能な最善の方法を使用しています。この場合、ライブホストで利用可能なモジュールはlocalhost上のモジュールと同じではないため、phpassは別の方法を選択する必要があります。 "$ 2a $"はbcryptを示し、 "$ P $"はphpassの内部ハッシュを示します。つまり、ライブホストにはbcryptを使用できないように見えます。

+0

あなたは正しいです、PHPのバージョンは4.4.9です。私はそれを動作させる方法を知っていません(私はポータブルモードのフラグをオンにしても動作しません)。 – BehnUm

+0

結果が得られたらlocalhostで "$ 2a $"で始まる場合は、移植可能なハッシュを使用していません。 2番目の引数としてTRUEを指定してHashPassword()メソッドを呼び出すようにしてください。 –

+0

ありがとう、私はそれを切り替え、それは今働く – BehnUm

0

私は最終的にphpass自体ではなく、スクリプトがエラーを引き起こしていることを知りました(mysql実名のエスケープが問題でしたが、実際にはajaxが実際にそれを隠していました)。

関連する問題