Авторизация python

Александр_77

Новичок
Пользователь
Авг 3, 2022
5
0
1
Доброго времени суток.
Совсем не давно начал знакомиться с python. Нужна помощь.

Имеется веб приложение, написанное на РНР, в нем есть модуль отвечающий за регистрацию и авторизацию пользователей. В процессе регистрации пароль пользователя хешируется с помощью функции password_hash и сохраняется в БД MySQL. Соотвецтвено при авторизации - юзаем password_verify и все счасливы.
Планирую переписать модуль авторизации с РНР на PYTHON.

ВОПРОС: Имеется ли аналог функции password_verify в python?
Что бы зарегистрированные пользователи могли и в дальнейшем авторизовываться без повторной регистрации уже через python модуль

 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
1 773
295
83
Я это затеял так, для саморазвития, а вообще хотел еще посоветоваться, может есть готовое решение.
можете посмотреть модуль werkzeug

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

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
1 773
295
83
password_verify - своими словами опишу:- функция для сравнения пароля что ввел пользователь, с хешем, хронящимся в БД .
но это так работает в РНР , а хеширует пароль - функция

password_hash​

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

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
1 773
295
83
Это стандартная функция в РНР, MD5- устарела, на смену ей пришли password_verify и password_verify соотвецтвенно
ну значит она из стд либы, отлично, можете посмотреть в самом пхп эту фукнцию, и переписать на питон, я не вижу проблемы
только как вы соедините это, я не знаю
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
1 773
295
83
что значит аналог? что в функции password_verify? что за модуль? вы используете все готовое? напишите свою функцию...
обычно просто сравниваются хеши паролей и все...
 

Александр_77

Новичок
Пользователь
Авг 3, 2022
5
0
1
Модуль- это я так ...
Сам написал приложнеие на РНР

PHP:
$password = $_POST['password'];
$user_name = $_POST['user_name'];

$ur_pass = $db->prepare("SELECT пароль FROM user WHERE имя=:user_name");
$ur_pass->execute(array($user_name));
$user_pass = $ur_pass->fetchColumn();
if ($user_pass !== false) {

   if (password_verify($password, $user_pass)) {

      $user_name = mb_strtolower($user_name);
      //Приведение строки к нижнему регистру

      $user_name = trim($user_name);
      $user_name = htmlspecialchars($user_name);
      $_SESSION['user_name'] = $user_name;
      $_SESSION["message"] = "Авторизация {$user_name} подтверждена";
      header("Location: index.php");
   }
}
header("Location: index.php");
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
1 773
295
83
Модуль- это я так ...
Сам написал приложнеие на РНР

PHP:
$password = $_POST['password'];
$user_name = $_POST['user_name'];

$ur_pass = $db->prepare("SELECT пароль FROM user WHERE имя=:user_name");
$ur_pass->execute(array($user_name));
$user_pass = $ur_pass->fetchColumn();
if ($user_pass !== false) {

   if (password_verify($password, $user_pass)) {

      $user_name = mb_strtolower($user_name);
      //Приведение строки к нижнему регистру

      $user_name = trim($user_name);
      $user_name = htmlspecialchars($user_name);
      $_SESSION['user_name'] = $user_name;
      $_SESSION["message"] = "Авторизация {$user_name} подтверждена";
      header("Location: index.php");
   }
}
header("Location: index.php");
вы показали, как вы используете функцию password_verify
покажите саму функцию password_verify, или это функция из стд либы? я просто не знаю пхп
 

Александр_77

Новичок
Пользователь
Авг 3, 2022
5
0
1
password_verify - своими словами опишу:- функция для сравнения пароля что ввел пользователь, с хешем, хронящимся в БД .
но это так работает в РНР , а хеширует пароль - функция

password_hash​

 

Александр_77

Новичок
Пользователь
Авг 3, 2022
5
0
1
Это стандартная функция в РНР, MD5- устарела, на смену ей пришли password_hash и password_verify соотвецтвенно
 

Александр_77

Новичок
Пользователь
Авг 3, 2022
5
0
1
ну значит она из стд либы, отлично, можете посмотреть в самом пхп эту фукнцию, и переписать на питон, я не вижу проблемы
только как вы соедините это, я не
ну значит она из стд либы, отлично, можете посмотреть в самом пхп эту фукнцию, и переписать на питон, я не вижу проблемы
только как вы соедините это, я не знаю
Благодарю.
Все это как бы- дело техники, кроме описанного выше момента. с этими самыми функциями из "стд либы".
Я это затеял так, для саморазвития, а вообще хотел еще посоветоваться, может есть готовое решение. И стоит ли вообще переписывать.
как Вы считаете?
для веба РНР более "заточен", или не факт?
просто питон более универсальный язык, а рнр разработан конкретно под веб

хотел бу услышать Ваше мнение если возможно


Возвращаемые значения

Возвращает хешированный пароль.

Использованный алгоритм, стоимость и соль будут возвращены как часть хеша. Таким образом, информация, необходимая для проверки хеша будет в него включена. Это позволит функции password_verify() проверять хеш без необходимости отдельного хранения информации о соли и алгоритме.
 

Форум IT Специалистов