Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> problem z sha1
-ent-
post
Post #1





Goście







witam

problem dotyczy zwyklego logowania z uwierzytelnianiem i zastosowaniem funcji sha1 w php5. mam baze danych w MySQL z tabela admin, w niej 2 kolumny "nazwa_uz" i "haslo" z 1 wierszem loginem i haslem zaszyfrowanym funkcja sha1oraz prosty formularz logowania z dwoma polami.
oczywiscie mam tez skrypcik ktory ma sprawdzac wpisany login i haslo->
jego glowna czesc:
  1. <?php
  2. $wynik = $lacz->query("select * from admin
  3.  where nazwa_uz ='$nazwa_uz' and haslo = sha1('$haslo')");
  4. ?>

i tu sie zaczyna problem bo kiedy wpisuje haslo w formularzu to nie moge sie zalogowac natomiast zmieniajac skrypt na:
  1. <?php
  2. $wynik = $lacz->query("select * from admin
  3.  where nazwa_uz ='$nazwa_uz' and haslo = '8a889c2add825feb'");
  4. ?>

jest wszystko w porzadku. Dziala rowniez kiedy zamiast normalnego hasla wpisuje 8a889c2add825feb a w skrypcie opuszczam funkcje sha1:
  1. <?php
  2. $wynik = $lacz->query("select * from admin
  3.  where nazwa_uz ='$nazwa_uz' and haslo = '$haslo'");
  4. ?>

byc moze problem jest banalny ale php to dla mnie nowosc... (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
mam nadzieje ze opis jest jasny
dzieki za wszelka pomoc
Go to the top of the page
+Quote Post
shield
post
Post #2





Grupa: Zarejestrowani
Postów: 15
Pomógł: 2
Dołączył: 29.06.2005

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


  1. <?php
  2. $wynik = $lacz->query("select * from admin
  3.  where nazwa_uz ='$nazwa_uz' and haslo = sha1('$haslo')");
  4. ?>


przed ta linijka zrob
$haslo=sha1($haslo) i zmien zapytanie na:
  1. <?php
  2. $wynik = $lacz->query("select * from admin
  3.  where nazwa_uz ='$nazwa_uz' and haslo = '$haslo'");
  4.  
  5. ?>


greets
Go to the top of the page
+Quote Post
NuLL
post
Post #3





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


  1. <?php
  2. $wynik = $lacz->query("select * from admin
  3.  where nazwa_uz ='".$nazwa_uz."' and haslo = '".sha1($haslo)."'");
  4. ?>
Go to the top of the page
+Quote Post
-ent-
post
Post #4





Goście







przykro mi ale ten sposob nic nie daje. nadal nie moge sie zalogowac. troche sie nawet zdziwilem ze wczesniejsze przypisanie zmiennej moze cos zmienic.
dzieki za pomoc (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) moze jakis inny pomysl. glupia sprawa bo to chyba powinno dzialac... (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
-ent-
post
Post #5





Goście







ten drugi sposob tez niewiele pomaga. nie wiem o co chodzi. wczesniej ten sposob wydawal sie dobry a tu lipa. jak to jest ze wpisanie sha1($haslo) jest "gorsze" od wpisania wyniku tej funkcji(zbior znakow)?
Go to the top of the page
+Quote Post
-ent-
post
Post #6





Goście







zastanawiam sie czy nie zostawic tego skryptu w taki sposob:
  1. <?php
  2. $wynik = $lacz->query("select * from admin
  3.  where nazwa_uz = '$nazwa_uz' and haslo = '8a889c2add825feb'");
  4. ?>

bo jak na razie tylko ten wariant dziala(choc mnie to wkurza (IMG:http://forum.php.pl/style_emoticons/default/angrysmiley.gif) ).
Tylko czy to nie wplynie za bardzo na jego bezpieczenstwo. ewentualnie mozna to zapisac w funkcji w oddzielnym pliku. jakas rada?
Go to the top of the page
+Quote Post
shield
post
Post #7





Grupa: Zarejestrowani
Postów: 15
Pomógł: 2
Dołączył: 29.06.2005

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


sprawdz sobie baze bo najprawdopodobniej masz skopana ilosc znakow (czytaj za mala) przechowujaca haslo, normalnie sha1 zwraca 40 znaczkow, u ciebie zwraca na pewno mniej

greets
Go to the top of the page
+Quote Post
-ent-
post
Post #8





Goście







dzieki shield (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

myslalem o tym wczesniej ze cos jest z moja baza-> tabela admin bo skladnia zapytania byla dobra
funkcja sha1 powinna zwracac 40 znakow a w mojej bylo 16(dziwne) -> wynik sha1 nie mogl byc wykonany w calosci bo pole char hasla w bazie ustawilem na 16(stad krotszy wynik).powinien byc 40. glupi blad (IMG:http://forum.php.pl/style_emoticons/default/blink.gif)
co do poprzedniego mojego posta to nie moglem tego tak zostawic bo przy kazdej zmianie hasla musialbym zmieniac ciag tych znakow w zapytaniu
dzieki za pomoc i czas
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 03:54