Предполагая, что у нас есть соль, которая находится в базе данных и которая была сгенерирована следующим образом
$salt = time();
В чем разница между этими двумя строками.
$pass1 = hash('sha1', $password . $salt);
$pass2 = hash_hmac('sha1', $password, $salt);
Они не производят одинаковую продукцию. Первая функция hash
принимает 2 параметра, а hash_hmac
- 3 параметра. Поэтому вы могли бы подумать, что мы можем получить этот третий дополнительный параметр, используя $salt
отдельно (для выполнения третьего параметра), а не конкатенировать его с паролем ($password . $salt
), как мы это делали в строке 2. Но это не так просто, результаты 2 разные. Зачем? Что здесь происходит?