Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Z obiektowego na strukturalny - logowanie
bahh
post 19.03.2015, 20:28:53
Post #1





Grupa: Zarejestrowani
Postów: 261
Pomógł: 2
Dołączył: 13.05.2012

Ostrzeżenie: (0%)
-----


Mam stworzyć system obsługujący to samo logowanie co na Kohanie - to kod z metodami dla sesji, które tutaj przepisałem jako zwykłe funkcje:

https://cpaste.org/p1oefactn

A tutaj pewne elementy do powyższego skryptu
  1. 'driver' => 'ORM',
  2. 'hash_method' => 'sha1',
  3. 'salt_pattern' => '1, 3, 5, 9, 14, 15, 20, 21, 28, 30',
  4. 'lifetime' => 1209600,
  5. 'session_key' => 'auth_user',
  6. 'autologin_key' => 'auth_autologin',
  7. 'forced_key' => 'auth_forced',


Cały kod zapisałem tak jak tutaj w postaci strukturalnej:
https://cpaste.org/pm3gdscgv/jptekh

Ale wywala takie błędy (w zależności od odświeżenia wyświetla jeden z tych trzech):

Cytat
Fatal error: Cannot redeclare find_salt() (previously declared in 0u°:61911776) in /firmymiesne/panel/index.php on line 24

Parse error: syntax error, unexpected ';' in /firmymiesne/panel/index.php on line 35

Fatal error: Cannot redeclare find_salt() (previously declared in /firmymiesne/panel/index.php:18) in /firmymiesne/panel/index.php on line 24



Wie ktoś co zrobiłem źle?

Ten post edytował bahh 19.03.2015, 20:29:37
Go to the top of the page
+Quote Post
10log
post 19.03.2015, 21:32:45
Post #2





Grupa: Zarejestrowani
Postów: 11
Pomógł: 2
Dołączył: 28.02.2008

Ostrzeżenie: (0%)
-----


W linii 35 brakuje ci jednego nawiasu

  1. $salt = substr(hash_function(uniqid(NULL, TRUE)), 0, count($salt_pattern) ) ;


Ten post edytował 10log 19.03.2015, 21:33:07
Go to the top of the page
+Quote Post
bahh
post 20.03.2015, 09:49:12
Post #3





Grupa: Zarejestrowani
Postów: 261
Pomógł: 2
Dołączył: 13.05.2012

Ostrzeżenie: (0%)
-----


Wszystko teraz działa, jednakże mimo, że praktycznie kod strukturalny jest taki sam jak obiektowy to zwraca inny hash:

Na jakimś przykładowym haśle po zaszyfrowaniu daje:
7B53zc5e9e4c5c5b7f44d48000615bf3a00dfc30950

A oryginalne hasło w bazie danych to:
5f45bf3dbf783984e1eeb011110a3fac07d488bb3a7665f1d1
Go to the top of the page
+Quote Post
ikssde
post 20.03.2015, 13:01:57
Post #4





Grupa: Zarejestrowani
Postów: 217
Pomógł: 40
Dołączył: 20.08.2008

Ostrzeżenie: (0%)
-----


Wywołujesz find_salt z jednym parametrem, a definicja funkcji wygląda tak:

  1. function find_salt($password, $salt_pattern)
  2. {
  3. $salt = '';
  4. foreach ($salt_pattern as $i => $offset)
  5. $salt .= substr($password, $offset + $i, 1);
  6. return $salt;
  7. }


Dodaj do wywołania $salt_pattern, które masz zdefiniowane powyżej tej funkcji.
Go to the top of the page
+Quote Post
bahh
post 20.03.2015, 13:13:30
Post #5





Grupa: Zarejestrowani
Postów: 261
Pomógł: 2
Dołączył: 13.05.2012

Ostrzeżenie: (0%)
-----


To już poprawiłem - znajduje sól ale nie wiem czemu jest nieodpowiednia długość hasha - powinien być dla sha1 krótszy (mowa o tym co jest w bazie danych)
Go to the top of the page
+Quote Post
ikssde
post 20.03.2015, 13:34:19
Post #6





Grupa: Zarejestrowani
Postów: 217
Pomógł: 40
Dołączył: 20.08.2008

Ostrzeżenie: (0%)
-----


Ta sama historia powtarza się w funkcji hash_password, tam też przekaż $salt_pattern.

@edit

Co do długości, to twoja funkcja do sha1 dokleja sobie coś, popatrz dokładnie do ona zwraca.

Ten post edytował ikssde 20.03.2015, 13:35:07
Go to the top of the page
+Quote Post
bahh
post 20.03.2015, 23:04:43
Post #7





Grupa: Zarejestrowani
Postów: 261
Pomógł: 2
Dołączył: 13.05.2012

Ostrzeżenie: (0%)
-----


Też tam przekazałem salt_pattern,

dokleja w tym przypadku "Bze"

jest w stanie ktoś rozszyfrować jak działa tutaj metoda hashu z solą?

Błąd był taki - że do find_salt trzeba dać hash z hasła z bazy danych - zaś w hash_password dajemy hasło z formularza i powstałą sól, wtedy wszystko gra. Temat zamknięty, dziękuję też za pomoc
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 6.06.2024 - 21:45