Как Woo Commerce шифрует пароли?

У меня есть веб-сайт с установленным woo commerce. В настоящее время я использую его как интернет-магазин. Однако я хочу создать версию приложения для веб-сайта, чтобы люди могли регистрироваться, входить в систему и приобретать что-либо как в приложении, так и на веб-сайте.

Поэтому я решил, что мне придется зашифровать пароль пользователя так же, как его шифрует woo commerce, чтобы пароль, отправленный из приложения, имел тот же хеш, что и пароль, отправленный через woo commerce.

Проблема в том, что я не знаю, как woo commerce шифрует свои пароли, и я попытался найти его, но ничего не получил.

Хотя у меня была догадка, что WordPress и Woo commerce шифровали пароли одинаково, пока я не создал две учетные записи с одинаковыми паролями, одну через WordPress и одну через woo commerce, и их хеши по-разному появлялись в моей базе данных.

Если кто-то может помочь мне понять, как иметь два идентичных хеш-пароля, желательно, не отказываясь от уже имеющейся у меня системы входа в систему woo commerce, я был бы благодарен.

В качестве альтернативы: если бы кто-то мог показать мне, где php-файл, который использует woo commerce для шифрования своих паролей, это тоже было бы здорово!

Заранее спасибо.

0

Решение

Это было очевидно слишком долго для комментария …

Если вы посмотрите в таблице wp_users после того, как измените чей-то пароль, их поле user_pass будет выглядеть $P$BCaLL1.Kcf3mWvwhEvQedwyX.etREw., $P$ флаг, указывающий, что PHPass сгенерировал пароль. Следующие 8 персонажей BCaLL1.K случайная соль, уникальная для каждого пользователя. А оставшиеся символы являются результатом запуска функции хеширования (bcrypt) для пароля несколько раз, добавление соли к значению каждый раз, когда он собирается снова выполнить хэш.

Вы можете подумать, что наличие соли в незашифрованном виде представляет угрозу безопасности, но наличие уникальной соли для каждой записи усложняет использование радужных таблиц для взлома пароля, а многократный запуск алгоритма хеширования и его сложения каждый раз делает его вычислительно дорогостоящим. трещина.

Чтобы ответить на ваш оригинальный вопрос, wp_hash_password() Функция это место для начала. Вы можете увидеть, как он взаимодействует с PHPass для генерации хеша.

1

Другие решения

Оказывается, что woo commerce и WordPress используют один и тот же хэш паролей (в этом случае phpass).

Однако хеш-пароль не хеширует один и тот же пароль дважды. Таким образом, единственный способ проверить, совпадает ли пароль, указанный в простом тексте, с паролем, который был зашифрован, — запустить специальную функцию.

В этом случае специальная функция для phpass это контрольный пароль:

$correct = 'original password here';
$hash = 'some hashed password (eg. $P$BzunkYjtVU1F6Derj3.2sNslS.4jL6/)';
$check = $t_hasher->CheckPassword($correct, $hash);

if ($check){
echo "The passwords are the same";
}else
echo "The passwords are not the same";

В этом примере он проверяет пароль в виде простого текста на хеш, чтобы увидеть, совпадают ли они. Более подробную информацию об этом можно найти в файле «test.php», который находится в папке загрузки phpass.

В моем случае мне просто нужно было скачать phpass и реализовать функцию ‘checkpassword’.

0

По вопросам рекламы [email protected]