Можно ли установить пароль пользователя по умолчанию в SQL, используя PHP пароль_ха sh? - PullRequest
0 голосов
/ 17 февраля 2020

В моем старом PHP приложении есть администратор по умолчанию и зашифрованный пароль md5, созданный SQL, который создает базу данных: insert into users values ( 1, 'admin', MD5('changeMe'), 2 );

Есть ли простой способ включить пользователя по умолчанию и зашифрованный пароль с помощью функции PHP passowrd_ha sh при создании таблиц? Я спрашиваю, потому что я понимаю, что password_ha sh является нативной PHP функцией, и я предполагаю, что она не будет понята в SQL.

Ответы [ 2 ]

2 голосов
/ 18 февраля 2020

Решение моей проблемы состояло из трех частей. Мой 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();, поэтому мне просто нужно было внести пару изменений в установленную базу данных в старый пароль администратора.

Спасибо тем, кто помогал светить, чтобы я мог найти свой путь. Я ухожу, чтобы изобрести колесо и нарезать хлеб.

0 голосов
/ 17 февраля 2020

вы можете сделать что-то подобное в php:

$hash = password_hash('changeMe'); 
//echo $hash; 

, а затем использовать это ha sh в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...