2013-02-22 59 views
4

代碼:不同版本的隱窩)PHP不同的結果(

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

結果:

PHP 5.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

也許這有助於:http://www.php.net/security/crypt_blowfish.php – 2013-02-22 10:06:55

+0

我發現這個http://bugs.php.net/bug.php?id=60073&edit=1 – Kubol 2013-02-22 11:08:33

+1

你鏈接的錯誤到...不是一個錯誤。閱讀文件底部的解釋說明。 >>「您在PHP的早期版本 上獲得了此輸出,其中CRYPT_BLOWFISH不受支持,或者可能是使用了錯誤版本 。」 – Jon 2013-02-24 10:47:51

回答

1

在PHP 5.3.0之前,Blowfish僅在系統的C庫提供(並且幾乎沒有人提供)時纔可用。在沒有Blowfish實現的系統中傳遞Blowfish鹽會導致算法選擇的廢話 - 通常是DES哈希。