Не понимаю, если password_hash необратимый алгоритм хеширования, то как пароль сравнивается с помощью password_verify? --- Добавлено --- Обратите внимание, что password_hash() возвращает алгоритм, стоимость и соль как части хеша. Таким образом, вся необходимая для проверки информация включена в него. Какая информация?
Нет. У тебя есть логин пароль. Пароль ты хешируеш при регистрации. А при авторизации пользователь отправляет тебе оригинальный пароль ты его снова хешируеш ищешь по логину предыдущий хеш и сравниваешь --- Добавлено --- Вот ты представь что у тебя есть файл на 10гб. Ты получаешь с него хеш на несколько символов. Ты же не можешь с несколько символов снова сделать файл на 10гб?
Ну как это не хешируется? С чего ты взял? Может ты просто запутался что такое хеш что такое шифр и что такое кеш? Вот у дурова шифр. Он обратимый но для этого нужен ключ. Правительство хочет обязать его скопировать все ключи с пользовательских программ и хранить их на сервере. Но так как не все айтишники получается такой вот цирк. Хотя скорее всего в правительстве клоуны которые даже не знают чего требовать
Нет. Не два раза. При регистрации ты берешь пароль password получаешь с него jhsjdfhsdmfbssdfsdfjksdfs. При авторизации пользователь снова пишет password ты берешь этот password и получаешь с него jhsjdfhsdmfbssdfsdfjksdfs а дальше сравниваешь то что получилось с тем что в бд --- Добавлено --- Хеш с password по одному алгоритму всегда будет тот же
Потому, что соль разная. Но когда ты передаешь в проверяющую функцию старый хэш и введенный пароль, она берет параметры хэширования старые, поэтому получает тот же хэш.
@nospiou разные! PHP: echo password_hash('dimon', PASSWORD_BCRYPT) . '<br>'; echo password_hash('dimon', PASSWORD_BCRYPT) . '<br>';
Тогда это не хэш а генерация рандомных значений. Хэш с одного объекта всегда один и тот же --- Добавлено --- Возможно там хеш+время+шифрование.
@Dimon2x, написано же-ж: "Если не задано, то будет использована стандартная стоимость и соль будет генерироваться автоматически." Всё просто. При регистрации - password_hash. При аутентификации - bool password_verify ( string $password , string $hash). Обратите внимание на второй параметр - этот тот самый hash, что был (например) записан в базу при регистрации.