Решение моей проблемы состояло из трех частей. Мой OP искал простой способ создания хешированного пароля для администратора для вставки в базу данных MySQL при установке приложения, используя встроенную функцию PHP password_hash()
.
(1) Основываясь на предложении @Nick и @Tadman, я решил включить настройку ha sh в скрипт установщика, который установит не только ha sh, но и другой определенный сайт / приложение. Переменные.
Вместо того, чтобы вставлять пользовательские значения при создании таблицы базы данных, она была отложена до немедленного момента, когда пользователь с правами администратора вводил свои учетные данные в форму, которая вставляет ha sh и записывает другие определения в file:
$userpass = $_POST['userpass'];
echo password_hash($userpass, PASSWORD_BCRYPT);
(2) Вторая часть моей проблемы состояла в замене всех экземпляров md5()`` with
password_ha sh () `, и я добился этого с помощью аккуратного PHP сценария Я нашел в сети рекурсивный поиск и замену вхождений на сервере.
Заменив вхождения md5()
, мне нужно было изменить метод сравнения ha sh и снова выполнить поиск соответствующих файлов. I удалось заменить экземпляры:
if ($p != $theUser->pwd ) {
return( false ); }
на:
if(password_verify($p, $theUser->pwd)) {
// Success!
}
else {
// Invalid credentials
echo "Uh oh!";
}
(3) Третьим шагом в решении проблемы было обнаружение Я добавил, что добавление $ 1 $ к открытию md5 га sh может сделать его читаемым password_hash();
, поэтому мне просто нужно было внести пару изменений в установленную базу данных в старый пароль администратора.
Спасибо тем, кто помогал светить, чтобы я мог найти свой путь. Я ухожу, чтобы изобрести колесо и нарезать хлеб.