Prestashop Клиенты WebService passwd - PullRequest
0 голосов
/ 26 июня 2018

Я разрабатываю логин от angular и ionic3 для веб-службы prestashop.У меня есть доступ к веб-API и звонки работают хорошо.Проблема в том, что я искал, как зашифровать пароль, который пользователь пишет против prestashop, и они не совпадают.

Я прочитал много постов и знаю, что способ работы prestashop - это зашифроватьпароль md5 и пароль, за которым следует пароль.Как:

md5 (_cookier_key_ + userPassword)

Я пытался зашифровать свой пароль, как в предыдущем примере (у меня _cookier_key_ + мой пароль), результат шифрования md5 следующий: f01e5b4d319dba0b6d41ec601d77f1007 *

Но в моем веб-интерфейсе prestashop тот же пароль, который он показывает примерно так: $ 2y $ 10 $ 36OeM33DN5zqrKWMnXqgz.RDzVorpZDl3do3UaRuhwDhlXsOh.jwO

Какой тип шифрования генерирует $ и?

Я вижу, что у некоторых пользователей моего prestashop пароль md5 сформирован как: 0367d421dd907a86d980a69dbb033589, но у других пользователей есть пароли, такие как: $ 2y $ 10 $ I5OGoI4HcqGTyee9W5Hvt.5fu / sJhh0h0h0h0h8происходит?

Тысяча благодарностей заранее

Ответы [ 2 ]

0 голосов
/ 09 июля 2018

Да, спасибо @ alanjs

На самом деле я уже нашел решение, но у меня не было времени ответить на вопрос, если есть другие люди, которые находят проблему.

В PrestashopПоскольку md5 больше не является безопасным, существует 2 типа шифрования.MD5 и BCrypt.Старые пользователи, которые не меняли пароль, шифруют свой пароль с помощью md5, а новые - с помощью BCrypt.

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

В любом случае, большое спасибо, описанные вами шаги - это именно то, что я нашел в другом посте и те, которые сработали.

0 голосов
/ 05 июля 2018

Как вы можете видеть в Hashing.php Prestashop использует bcrypt в качестве функции хеширования паролей, поэтому строки, которые вы видите в столбце паролей в базе данных, являются результатами его применения.

В порядкечтобы проверить правильность паролей от ionic, вы должны использовать функцию верификатора bcrypt.Итак, поехали:

1 - Установите bcryptjs в ваш ионный проект

npm install bcryptjs --save

npm install @types/bcryptjs --save

2 - Импортируйте bcrypt в ваш .tsфайл, в котором вы собираетесь проверять пароли

import * as BcryptJS from "bcryptjs";

3 - Проверьте пароль:

Пример: $ 2y $ 10 $ pUxl49suKpBXDYzXfDf7x.E2n9xyP7OWKrTs3jWxkX1C - ml10lyply> строка, сгенерированная prestashop и сохраненная в базе данных для пароля администратора

BcryptJS.compareSync('admin', '$2y$10$pUxl49suKpBXDYzXfDf7x.E2n9xyP7OWKrTs3jWxkX1C/ml10lypK'); // returns true


BcryptJS.compareSync('test', '$2y$10$pUxl49suKpBXDYzXfDf7x.E2n9xyP7OWKrTs3jWxkX1C/ml10lypK'); // returns false
...