Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Algorytm MD5 lub funkcja SHA1, Szyfrowanie hasla
malesja
post 3.07.2009, 21:34:50
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 10.06.2009

Ostrzeżenie: (10%)
X----


Witam
Moglby mi ktos powiedziec jak zastosowac w php algorytm szyfrowania hasel? Tzn mam 3 pliki:
jeden z formularzem do logowania pole LOGIN i pole HASLO po wpisaniu i kliknieciu przycisku wpisane dane sa wysylane z uzyciem metody POST do drugiego pliku, tego ponizej, ktory wykorzystuje plik z db.php aby placzyc sie z baza a nastepnie wybrac wszystkie dane z pola uzytkownicy i pola hasla w celu sprawdzenia czy podany login z formularza i haslo istnieja jesli tak to logowanie przebieglo z powodzeniem i jest otwierana sesja, jesli dane sa nie prawidlowe wyswietla sie komunikat 'nie ma w bazie'

To tylko tak na syzbkiego zrobione bo jest mi potrzebnne do dalszej czesci projektu, logowanie wydaje sie byc O.K. tylko wlasnie nie wiem jak zrobic aby te hasla, ktore przewiduje aby w bazie byly szyfrowane po wprowadzeniu z formularza takze odpowioednia funkcja zamieniala na zgodne z tymi w bazie. Wystarczy wstawic MD5 albo SHA1 gdzies tylko nie wiem gdzie?
Moze mi to ktos powiedziec?

  1. <?php
  2.  
  3. include ("db.php");
  4.  
  5. $row = get_user($_POST['login'], $_POST['haslo']);
  6.  
  7. if($row)
  8.    {
  9.  
  10.    $_SESSION['id'] = $row['login'];
  11.    $_SESSION['username'] = $row['name'];
  12.  
  13.    }
  14. else
  15. {
  16.  
  17. echo "nie ma w bazie";
  18. }
  19.  
  20.  
  21. ?>


Ten post edytował malesja 3.07.2009, 21:36:03
Go to the top of the page
+Quote Post
bemol
post 3.07.2009, 21:43:02
Post #2





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

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


musisz przy rejestracji lub przy wpisywaniu do bazy bezpośrednio dodać funkcję SHA1 lub MD5 (i po stronie php i mysql taka funkcja istnieje).
dodatkowo przy wysłaniu loginu i hasla w formularzu musisz dodać do zapytania coś w stylu:
  1. <?php
  2. mysql_select("select * from users where user_login='".sha1($_GET['login'])."' AND ...";)
  3. ?>


tak samo z hasłem, no i oczywiście może to być metoda $_POST,a funkcja md5.

Ten post edytował bemol 3.07.2009, 21:44:05


--------------------
Tym ludziom zaufałem i dobrze na tym wyszedłem:
kresh
Darti
piotrekkr
Bez nich wiele bym nie zrobił. Dzięki im za to!
Go to the top of the page
+Quote Post
crackcomm
post 4.07.2009, 19:16:46
Post #3





Grupa: Zarejestrowani
Postów: 184
Pomógł: 6
Dołączył: 23.02.2008
Skąd: Katowice

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


No i przy logowaniu
  1. <?php
  2.  
  3. include ("db.php");
  4.  
  5. $row = get_user($_POST['login'], md5($_POST['haslo'])); //o ile to ta funkcja tongue.gif
  6.  
  7. if($row)
  8.   {
  9.  
  10.   $_SESSION['id'] = $row['login'];
  11.   $_SESSION['username'] = $row['name'];
  12.  
  13.   }
  14. else
  15. {
  16.  
  17. echo "nie ma w bazie";
  18. }
  19.  
  20.  
  21. ?>


--------------------
Sygnaturka comes here.
Go to the top of the page
+Quote Post
malesja
post 5.07.2009, 13:13:24
Post #4





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 10.06.2009

Ostrzeżenie: (10%)
X----


dobra dzieki, madre z Was chlopaki winksmiley.jpg p.s. a podczas rejestracji jak ustawie w bazie pole password gdzie bedzie ono przez baze juz zamieniane algorytmem MD5 to w skrypcie php nie musze uzywac tej funkcji?
W ogole logowanie dziala mi w ten sposob, ze SELECT sprawdza czy uzytkownik i haslo w bazie wystepuja jak wystepuja i sie zgadzaja to nastepuje logowanie, ale chyba powinienem to zrobic iz najpierw powinenem sprawdzic czy w bazie wystepuje uzytkownik o danym loginie, a dalej jesli wystepuje powinienem sprawdzic czy podane haslo jest pasujace do danego loginu.

Mam jeszcze inne pytanie. Jak zrobic glowne menu, w ktorym beda koleczka. Glowna strona, Kontakt itd. to koleczko z inna ikonka tak jak w przykladzie ponizej gdzie po najechaniu kursorem na odpowiednie menu podswietli sie ono np. z szarego na kolorowe. Wiem ze trzeba to osadzic kazda ikonke w innej ramce i mysle, ze to trzeba zrobic za pomoca gifow, ale chyba tez musze okreslic, ktory obszar ma byc przezroczysty tzn. robie rysunek w kwadracie wypelniam np. rozowym kolorem i okreslam go jako przezroczysty, nastepnie rysuje koleczko, w ktorym bedzie ikonka, ale juz poza koleczkiem poza obwiednia kolor rozowy w tym kwadracie bedzie niewidoczny wiec menu wyjdzie mi tak jak ponizej. Dajcie jakies pomysly. Jeszcze tego nie testowalem, ale moze ktos ma lepszy i latwiejszy pomysl.


Robiac strone glowna chce aby czesc z menu glownym nie byla przeladowywana po wybraniu jakiejs kategorii, aby bylo ono zawsze wyswietlane, a ladowane byly do odpowoieniej czesci strony tylko te rzeczy, ktore wybierze uzytkownik w menu czy robiac to za pomoca ramek nie bedzie to jak na owe czasy technologia przestarzala, czy moze inaczej powinienem to zrobic?
Go to the top of the page
+Quote Post
Pawel_W
post 5.07.2009, 13:15:17
Post #5





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


musisz użyc tej funkcji poniewać w bazie będziesz miał zakodowane hasło a z formularza przyjdzie ci niezakodowane

EDIT: nie doczytałem, lepiej sprawdź ;o

Ten post edytował Pawel_W 5.07.2009, 13:15:56
Go to the top of the page
+Quote Post
1oBuZ
post 5.07.2009, 13:20:39
Post #6





Grupa: Zarejestrowani
Postów: 101
Pomógł: 1
Dołączył: 11.11.2008
Skąd: Kalisz

Ostrzeżenie: (10%)
X----


Podczas rejestracji kodujesz hasło najlepiej za pomocą funkcji md5()

(kodowanie umieść w pliku który pobiera dane z formularza)

Zakodowanie hasło trafia do bazy danych, podczas logowania sprawdzasz tylko zakodowane ciągi |(przykładowo tak jak to napisał: crackcomm).

Ten post edytował 1oBuZ 5.07.2009, 13:21:59


--------------------
W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi.

Dla komputera nie ma rzeczy niemożliwych z wyjątkiem tych, których od niego wymagamy.

Liczba osób w zespole programistycznym ma tendencje wzrastające, niezależnie od ilości pracy.
Go to the top of the page
+Quote Post
Pawel_W
post 5.07.2009, 13:23:38
Post #7





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


co do tych kółek to robisz 2 obrazki kolorowy i szary (kolorowy.gif, szary.gif) a potem podmieniasz je tak:
  1. <img src="szary.gif" onmouseover="this.src='kolorowy.gif'" onmouseout="this.src='szary.gif'">
Go to the top of the page
+Quote Post
crackcomm
post 5.07.2009, 14:27:00
Post #8





Grupa: Zarejestrowani
Postów: 184
Pomógł: 6
Dołączył: 23.02.2008
Skąd: Katowice

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


Całkowicie zapomniałem zapytać, tak na marginesie, w funkcji get_user dodajesz slashe przed sprawdzaniem w bazie ?

  1. <?php
  2. $row = get_user($_POST['login'], md5($_POST['haslo']));
  3. ?>


Ten post edytował crackcomm 5.07.2009, 14:28:37


--------------------
Sygnaturka comes here.
Go to the top of the page
+Quote Post
malesja
post 5.07.2009, 22:45:56
Post #9





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 10.06.2009

Ostrzeżenie: (10%)
X----


crackcomm? nie rozumiem Twojego pytania z tymi slashami. Po co je dodawac? nic takiego nie dodaje.
Jedyne co mnie tu nurtuje to to, ze powinienem najpierw sprawdzac czy dany login jest w bazie a potem sprawdzac czy dane haslo pasuje do loginu a ja zrobilem to zr SELECT pobiera login i haslo.

Ponadto dopowiedzcie jak robic ten uklad strony glownej, zeby nie przeladowywac calego serwisu za kazdym razem kiedy ktos wybierze jakies menu. Menu ma pozostac w jednej ramce a np tresci maja sie ladowac juz w innej? Ale metoda ramek na te czasy chyba nie jest za dobrym pomyslem. Moglbym prosic o jakies podpowiedzi jak rozwiazac to w inny sposob.
Go to the top of the page
+Quote Post
blooregard
post 5.07.2009, 23:05:44
Post #10


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Cytat
Jedyne co mnie tu nurtuje to to, ze powinienem najpierw sprawdzac czy dany login jest w bazie a potem sprawdzac czy dane haslo pasuje do loginu a ja zrobilem to zr SELECT pobiera login i haslo

No i dobrze zrobiłeś. Jeśli ktoś podał prawidłwoy login i hasło, to i tak zapytanie zwróci Ci dokładnie jeden wynik.
Cytat
Moglbym prosic o jakies podpowiedzi jak rozwiazac to w inny sposob.

AJAX? Tzn. kliknięcie w opcję w menu wywołuje zdarzenie pobierające i wyświetlające zawartość (treść) div-a z głównym kontentem. Czyli tak czy siak, bez JavaScriptu się nie obejdzie.


--------------------
Life's simple... You make choices and don't look back...
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: 30.05.2025 - 23:46