Забыли пароль?
Запросите новый здесь.

Автор темы: Deorchik
ID темы: 2521
Информация:
Тема содержит 7 сообщения, была просмотрена 6308 раз.  Имеются прикрепленные файлы.
Просмотр темы
PHP-Fusion Russia » Поддержка 7 версии » Вопросы новичков
 Распечатать тему
Авторизация
Deorchik
Доброе время суток! Вот возник такой вопрос при таком случае : вообще мне удалось на одну БД юзеров прелепить два проекта, все работает при создании аккаунта все работает без проблем, но вот в чем загвоздка если создать аккаунт на одном проекте то авторизоваться на другом нельзя хотя аккаунт создан, и хранится в общей БД, и тоже самое с другого проекта, вот хочется узнать может быть такое что данные пароля и логина записываются по разному, если да то как это происходит во fusion'не ?


Теперь я точно знаю что это дело в пароля, вот ещё штука какая, можно пароль восстановит сперва в одной а потом в другой системе и тогда он подходит под обе системы, но это не удобно... Может кто мне показать где именно начинается кусок кода в записи в БД пароля...

Объединено 12.07.2015 18:29:
Все копаюсь ... Вот значит что ещё найдено тип зашифровки php fusion - md5, а там sha1, исправляю в php fusion, все тоже..., но отменив зашифровку выяснилось, что с другой стороны зашифровка делается таким образом VALUES ('$username', sha1(concat(upper('$username'),':',(upper('$pass')))....)); в итоге я прихожу к выводу что пароль шифруется вместе с логином... Вот а как у php fusion... Не могу пока догнать..

Объединено 13.07.2015 12:15:
Привет снова =) Надежды не теряю =)

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

если да то вот такой кусок кода мне стал интересен :

Скачать исходники  Код
   
// Encrypts the password with given algorithm and salt
   private function _hashPassword($password, $algorithm, $salt) {
      if ($algorithm != "SHA1") {
         return hash_hmac($algorithm, $password, $salt);
      } else {
         return SHA1(SHA1($password));
      }
   }





вот что мне пришло в голову

Скачать исходники  Код


   // Encrypts the password with given algorithm and salt
   private function _hashPassword($username, $password) {
      $user = strtoupper($username);
      $pass = strtoupper($password);
      return SHA1($user.':'.$pass);
   }






вот только я пока не пойму как мне перекрепить юзера,
Изменил(а) Deorchik, 13.07.2015 12:15
 
Web
jikaka
что вообще требуется сделать?
ты хочешь на 2х разных доменах иметь общую базу юзеров? или что?
 
Web
Deorchik
jikaka написал:

что вообще требуется сделать?
ты хочешь на 2х разных доменах иметь общую базу юзеров? или что?


мне нужно что шифровка пароля при генерации была такова: в приложении может я так легче донесу свою идею и замысел =)

Объединено 14.07.2015 12:37:
Всем привет еще раз =) Попробую еще разок =)

Когда регистрирую юзера через php fusion - то пароль просто шифруется
те к примеру грубо говоря sha1( '$pass' ) и на этом все.. и в бд выглядит без шифровки к примеру пароль - 12345678,
а мне необходимо, чтобы при шифровке логин тоже был задействован грубо говоря sha1(CONCAT(UPPER( '$user_name' ),':',UPPER( '$pass' ))) и в бд бы выглядел без шифровки к примеру пароль - Deorchik:12345678

Вот может кто поймет =) и подскажет =))

Объединено 14.07.2015 12:43:
/------------------------------------------------/


или вот такой вариант - посмотрев файл PasswordAuth.class.php

в пункте

Скачать исходники  Код

   // Encrypts the password with given algorithm and salt
   private function _hashPassword($password, $algorithm, $salt) {
      if ($algorithm != "SHA1") {
         return hash_hmac($algorithm, $password, $salt);
      } else {
         return SHA1(SHA1($password));
      }
   }






$password как я понимаю это переменная...

то может вот так попробовать

Скачать исходники  Код

$password = getPasswordHash($user_name, $pass);





Это все теория и я не знаю как прикрутить это в php fusion, вот может кто знает или есть догадки?
Deorchik присоединено следующее:изображение:
reggg.jpg

Изменил(а) Deorchik, 14.07.2015 12:43
 
Web
Rush
так в чем проблема? sha1($login . ':' . $pass);
 
Web
Deorchik
Rush, Проблема в том что я не знаю как правильно и куда точно это припаять =)) вот чем проблема ...

Объединено 14.07.2015 13:27:
Rush, спасибо, куда примерно есть уже предположение.., вот только логин не видит при шифровке те не может его взять ..и шифруется опять просто пароль ..
Изменил(а) Deorchik, 14.07.2015 13:27
 
Web
SchreiBear
Deorchik, мне кажется что всё дело в том, что каждый из серверов вот это sha1 запароливает по разному к примеру сервер 1 при регистрации паролит в 7808лгмщги9з88н9 , а сервер 2 шнгм86787лгмгр вот от сюда и ошибка, пароли при сравнении не совпадают... для запароливания ключ для обоих серверов должен быть одинаковый.
Нужно сказать огромное спасибо людям, которые живут на популярных девелопер форумах и дают там адекватные ответы на абсолютно «нубские» вопросы без попыток унизить вопрошающего.
 
Deorchik
SchreiBear, Не думаю, тк сейчас это проверяю на денвере.... вся фишка заключается что 1 проект просто шифрует пароль sha1($pass), а 2 проект это делает грубо говоря тоже самое но там пароль шифруется с логином sha1($login . ':' . $pass);

на php fusion вообще трудно выяснить в какой момент в коде переменной $password присваивается сам пароль или передается...
 
Web

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум: