Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Kodowanie hasla md5
Forum PHP.pl > Forum > Przedszkole
Refost
Mam taki kod do odczytywania hasla:

  1. <?php
  2. $wybierz_A = (" Select * From `administratorzy` Where `nazwa` = '".$nazwa."' and `haslo` = '".$haslo."' ");
  3. $query_A = mysql_query ( $wybierz_A );
  4. $row_A = mysql_fetch_array ( $query_A );
  5.  
  6. $haslo = $row_A['haslo'];
  7.  
  8. if ( !empty ( $_POST['nazwa'] ) && !empty ( $_POST['haslo'] )) {
  9.  
  10.   if ( $row_A['nazwa'] == $_POST['nazwa'] && ( md5 ( $row_A['haslo'] )) == $_POST['haslo'] ) {
  11.       
  12.         $_SESSION['Admin'] = $_POST['nazwa'];
  13.     }
  14. }
  15. ?>


A dodaje tak:

  1. <?php
  2.  
  3. $a = mysql_query (" INSERT INTO `admin` (`id`, `imie`, `nazwa`, `haslo`, `email`) VALUES ('0', '".$_POST['imie']."', '".$_POST['nazwa']."', '".md5 ( $_POST['haslo'] )."', '".$_POST['email']."') ");
  4.  
  5. ?>


i czemu jak probuje logowac to sie nie loguje? dobrze mam napisany ten kod?
Refost
Sorry.. W drugim kodzie zamiast `admin` ma byc `administratorzy`..
nospor
skoro do bazy wkladasz shaszowane haslo, to i do porownywania musisz hashowac.

i na przyszlosc uzywaj znacznikow w tytulach zgodnie z zadami forum Przedszkole
Guest
No hashuje je przez md5 :/
Master Miko
ale nie ma pętli while. Sprawdzasz tylko dla pierwszego rekordu. To nie ma związku z md5
nospor
  1. <?php
  2. $wybierz_A = (" Select * From `administratorzy` Where `nazwa` = '".$nazwa."' and `haslo` = '".$haslo."' ");
  3. ?>
Mi chodzilo o ten kod. porownujesz haslo zakodowane w md5 zapisane w bazie z haslem niezakodowanym pobranym z formularza. Musisz to co zostanie pobrane z formularza, shashowac przed porownaniem
Guest
Nie rozumiem :/
TomASS
Koledze nosporowi chodzi o to, że jeśli przetrzymujesz w bazie danych hasło zakodowane md5, który jest nieodwracalny:
  1. <?php
  2.  
  3. $a = mysql_query (" INSERT INTO `admin` (`id`, `imie`, `nazwa`, `haslo`, `email`) VALUES ('0', '".$_POST['imie']."', '".$_POST['nazwa']."', '".md5 ( $_POST['haslo'] )."', '".$_POST['email']."') ");
  4.  
  5. ?>

(chodzi o md5 ( $_POST['haslo'] )), to także porównywać musisz z hasłem zakodowanym:
  1. <?php
  2.  
  3. $wybierz_A = (" Select * From `administratorzy` Where `nazwa` = '".$nazwa."' and `haslo` = '".md5($haslo)."' ");
  4.  
  5. ?>


A ty robisz bez md5($hasło) co sprawia, że pruwnujesz hasło zakodowane z hasłem niezakodowanym. Tutaj:
  1. <?php
  2.  
  3. if ( $row_A['nazwa'] == $_POST['nazwa'] && ( md5 ( $row_A['haslo'] )) == $_POST['haslo'] ) {
  4.  
  5. ?>

Też raczej popraw - na odwrót:
  1. <?php
  2.  
  3. $row_A['haslo'] )==md5($_POST['haslo'] ));
  4.  
  5. ?>


Poczytaj o md5 - szczególnie komentarze oraz to i to dla większego bezpieczeństwa smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.