因爲我使用的是較老版本的PHP,所以我必須使用.crypt()
。我正在測試一些密碼驗證,並且服務器驗證錯誤的密碼是正確的。於是我決定去最基本的測試可能,我還是有這個問題:對於不同的字符串和鹽,PHP .crypt()的結果是一樣的
<?php
echo crypt("cryptcryptcrypt","salt");
echo "<br>";
echo crypt("cryptcryptcrypta","salta");
?>
- 其結果是:
saRyxun8Pn/K6
saRyxun8Pn/K6
這是爲什麼hapening?
出於測試目的,我使用PhpFiddle,所以回答時,你可能會發現這很有用...
'它也只使用str的前8個字符,所以以相同的8個字符開始的更長的字符串將會生成相同的結果(當使用相同的鹽時).'解釋了部分問題。爲什麼他們爲兩種不同的鹽產生相同的輸出,完全是另一個問題。 @Sberry, – sberry
,鹽應該不一樣嗎? –
@ 1615903,可悲的是,我沒有5.3.7。 –