Извините, это может быть глупо, но есть кое-что, чего я не понимаю в Phpass.Если я смогу создать надежный хешированный пароль, например:
$pwdHasher = new PasswordHash(8, FALSE);
$hash = $pwdHasher->HashPassword( $password );
, а затем проверить его так:
$checked = $pwdHasher->CheckPassword($password, $hash);
, то это означает, что логически пароли должны храниться таким образомтак как они могут быть прочитаны только на определенном компьютере (в противном случае кто-то может просто использовать функцию «CheckPassword» на другом компьютере, чтобы получить пароль).Как Phpass делает это?
Если мне нужно переместить веб-сайт на новый сервер в будущем, не вызовет ли это проблемы?Как безопасно сделать резервную копию моей базы данных, чтобы в случае серьезного сбоя сервера я мог восстановить все пароли?(Я что-то упускаю из виду?)
Редактировать - в ответ на комментарии ниже, если разные машины не влияют на это, то если хакер получает доступ к моей базе данных, почему они не могут просто выполнить CheckPassword на своихсобственная машина, чтобы получить оригинальный пароль?Извините, я, должно быть, упускаю что-то очевидное.
Редактировать 2 - Черт, я упустил что-то очевидное.Функция сравнения только проверяет данный пароль на соответствие хешированному и возвращает значение true или false - фактически вам никогда не нужно иметь доступ к самому паролю.Извиняюсь за глупость!