2011-08-14 15 views
2

PHP(Codeigniter)とPhils RESTserverを使用してAPIを開発しています。 パスワードと塩を使ってcrypt()を使ってハッシュを作成しています。Cryptはローカルマシンとは異なるサーバー上で

問題は、crypt()アルゴリズムの結果であるハッシュが、ローカルマシンとサーバーで異なる です。

ローカルで正常に動作しますが、サーバー上では動作しません(省略)。私はパスワードと塩が同じであることを知っている。ローカルマシンから

ハッシュ:サーバーから

$2a$10$g6J7CUjJvB0JpTd7UcrowePEbqp/oBmZEpd7vS.5HFYx38f08Tb/a 

はハッシュ:

$2jkP2/LlC/H6 

間違っている可能性がありますか?

(サーバーはcentos 5を実行しています)。

答えて

3

あなたのPHPバージョンは、おそらく、魚介類のハッシュを暗号化するのには対応していません。出力の$ 2a $は、両方のプラットフォームで利用できないCRYPT_BLOWFISHを使用しようとしていることを示しています。

http://uk.php.net/crypt

バグはPHP 5.3.2で修正されました:

無効ラウンドに固定されたフグの行動 "失敗" の文字列 を( "* 0" または "* 1")を返すために、 DESに落ちる代わりに。

私はあなたのサーバーからのハッシュがあなたの塩の最初の2文字しか含んでいないので、DESに落ちていると思います。

+0

移植性を高めるために、 'hash()'を使用してください:http://www.php.net/manual/en/book.hash.php – Mchl

関連する問題