代碼:PHP password_hash函數鹽長21或22?
echo password_hash("stackoverflow", PASSWORD_DEFAULT, ['salt' => 'twenty-one-characters']);
結果:
Warning: password_hash(): Provided salt is too short: 21 expecting 22
代碼:
echo password_hash("stackoverflow", PASSWORD_DEFAULT, ['salt' => 'twenty-one-charactersA']);
結果:
$2y$10$dHdlbnR5LW9uZS1jaGFyYOVyX13hK9eb4/KXMAkHsAJX..YR7t/32
代碼:
echo password_hash("stackoverflow", PASSWORD_DEFAULT, ['salt' => 'twenty-one-charactersB']);
$2y$10$dHdlbnR5LW9uZS1jaGFyYOVyX13hK9eb4/KXMAkHsAJX..YR7t/32
問:
正如你看到的,通過追加A和B到21個字符串我們創建的22個字符兩種不同的鹽,但是,哈希值是一樣的!那第二十二個字被忽略了?如果它被忽略,爲什麼它要求22個字符的鹽?
你爲什麼醃製自己而不使用默認? – 2014-10-10 08:44:30
閱讀[blowfish]上的註釋(http://php.net/manual/en/function.crypt。php)默認算法,22字符鹽的細節 – 2014-10-10 08:48:28