4

コード:

echo $a = 'stackoverflow';
echo '<br>';
echo $b = '$2a$10$bf57caf7e1fa23e4b975ab';
echo '<br>CRYPT:<br>';
echo crypt($a, $b);

結果:

PHP5.2.5

stackoverflow
$2a$10$bf57caf7e1fa23e4b975ab
CRYPT:
$2.LaeiP21fsQ

PHP 5.4.4

stackoverflow
$2a$10$bf57caf7e1fa23e4b975ab
CRYPT:
$2a$10$bf57caf7e1fa23e4b975aOhXjTtYrqOYLfHsxdOxGRhF03.LtKewW 

スクリプトを PHP 5.4.4 の新しいサーバーに移動したい 5.2.5 ハッシュと同じ効果を得たいと考えています。そうしないと、一部のデータが失われます。

$ で終わるソルトを使用すると、結果は同じです

私はこれを読みました:

PHP 5.3.0 の時点で、PHP には独自の実装が含まれており、システムが 1 つ以上のアルゴリズムをサポートしていない場合はそれを使用します。

しかし、アルゴリズムは変わらないはずです。

助けてください。

4

1 に答える 1

1

PHP 5.3.0 より前のバージョンでは、Blowfish は、システムの C ライブラリで提供されている場合にのみ利用できました (実際に提供されたものはほとんどありませんでした)。Blowfish 実装を持たないシステムで Blowfish ソルトを渡すと、アルゴリズム選択のクラップシュート (通常は DES ハッシュ) が発生します。

于 2013-02-25T10:16:32.880 に答える