Poslao: 02 Maj 2009 23:50
|
offline
- Daffa
- Novi MyCity građanin
- Pridružio: 20 Avg 2008
- Poruke: 25
- Gde živiš: Podgorica
|
Pozdrav svima.
Imam jednu nedoumicu u vezi MD5 enkripcije lozinki. Ugradio sam tu enkripciju u svoju register.php skriptu, i sve radi bez ikakvih problema, međutim, svi znamo kakvog je oblika ispis nakon enkripcije, tj., gotovo je nemoguće zapamtiti takvu lozinku. Mene zanima kako izvesti da korisnik, na login formi, unosi svoj oblik lozinke koji je odabrao pri registraciji, a da se ta lozinka u bazi ispisuje kao enkripcija? Stanje kod mene trenutno je takvo da korisnik na login formi mora da unese enkriptovani oblik lozinke.
Ako ikako moze neko detaljnije objasnjenje o ovome, bio bih mnogo zahvalan. Vec sam na drugim forumima dobijao neke predloge, ali se nisam bas snasao.
Hvala na odgovorima, unaprijed.
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 03 Maj 2009 00:05
|
offline
- bobby
- Administrator
- Pridružio: 04 Sep 2003
- Poruke: 24135
- Gde živiš: Wien
|
Ti enkripciju treba da radis u skripti nakon sto korisnik unese lozinku, a ne da korisnik unese vec enkriptovanu lozinku jer na taj nacin nisi nista zastitio.
|
|
|
|
Poslao: 03 Maj 2009 00:13
|
offline
- Daffa
- Novi MyCity građanin
- Pridružio: 20 Avg 2008
- Poruke: 25
- Gde živiš: Podgorica
|
U redu je to, vec sam rekao, to tako i radi. Korisnik pri registraciji odabere svoju lozinku koja se preko md5 enkripcije pretvara u oblik od 36 karaktera. Problem nastaje pri logovanju korisnika. Tada (po sadasnjoj situaciji) korisnik mora da unese kriptovani oblik lozinke da bi se uspjesno logovao. E ja bih sad to da promijenim; da korisnik unosi lozinku koju je odabrao pri registraciji, a da se u bazi to poredi sa md5 lozinkom. Nadam se da me razumijes.
Hvala na brzom odgovoru.
|
|
|
|
Poslao: 03 Maj 2009 00:23
|
offline
- bobby
- Administrator
- Pridružio: 04 Sep 2003
- Poruke: 24135
- Gde živiš: Wien
|
Pa treba u formi za logovanje isto da lozinku pretvoris u MD5 i da taj rezultat uporedis sa MD5 iz baze.
Mozes koristiti kod koji si koristio u register.php da bi pretvorio lozinku u hash.
|
|
|
|
Poslao: 03 Maj 2009 04:32
|
offline
- Svemirko
- Legendarni građanin
- Pridružio: 24 Mar 2004
- Poruke: 3962
- Gde živiš: Zemun
|
pa kada proveravas lozinku sa onom u bazi uradi nesto ovako u php-u
if($baza_pass == $baza_forma) ...
ili ako radis u sql upitu pretragu po username i pass-u onda samo radi
select user, pass from tabela where user = $user_forma and pass = md5($pass_forma)...
|
|
|
|
Poslao: 03 Maj 2009 05:31
|
offline
- Peca
- Glavni Administrator
- Predrag Damnjanović
- SysAdmin i programer
- Pridružio: 17 Apr 2003
- Poruke: 23211
- Gde živiš: Niš
|
Covek ne konta smisao md5 enkripcije
da probam da objasnim:
kada se korisnik registruje, desi se ovo:
korisnik unese svoj pass -> skripta pretvori pass u md5 oblik -> upise taj oblik u bazu
sve sto ti sada treba je to isto:
korisnik unese svoj pass -> skripta pretvori pass u md5 oblik -> proveri se da li se taj oblik poklapa sa onim koji je upisan u bazu
dakle, tamo kod provere passworda, prosto uradi:
$kriptovan = md5($uneti_pass);
i onda proveri da li se $kriptovan poklapa sa onim iz baze.
|
|
|
|
Poslao: 03 Maj 2009 22:54
|
offline
- Daffa
- Novi MyCity građanin
- Pridružio: 20 Avg 2008
- Poruke: 25
- Gde živiš: Podgorica
|
Napisano: 03 Maj 2009 16:21
Peca ::Covek ne konta smisao md5 enkripcije
Ja da ne kontam smisao md5 enkripcije, ne bih se trudio da je ugradjujem u sajt uopste.
Peca ::sve sto ti sada treba je to isto:
korisnik unese svoj pass -> skripta pretvori pass u md5 oblik -> proveri se da li se taj oblik poklapa sa onim koji je upisan u bazu
dakle, tamo kod provere passworda, prosto uradi:
$kriptovan = md5($uneti_pass);
i onda proveri da li se $kriptovan poklapa sa onim iz baze.
E, to je odgovor koji sam trazio. Ja u stvari nisam znao na kojoj poziciji tacno da postavim enkripciju za provjeru.
Nadam se da vas nisam smarao sa svojim (pocetnickim) pitanjem. Zahvaljujem na odgovorima momci.
Dopuna: 03 Maj 2009 22:54
Je l' bi to trebalo ovako da izgleda:
$upit = "select * from korisnik where user = '".$user."' and pass='".$pass."' ";
$rez = mysql_query($upit);
$br = mysql_num_rows($rez);
if ($br>0)
{
$_SESSION['username']=$user;
$u=$_SESSION['username'];
$_SESSION['password']= md5($pass);
$p=$_SESSION['password'];
echo "<br><br><h1><strong>DobrodoŠli $u.</strong></h1>";
}
else
{
echo "Vaši podaci nisu ispravni. ";
echo "<center><a href=\"javascript:history.back()\" >Nazad</a></center>";
exit;
} ?
|
|
|
|
Poslao: 03 Maj 2009 23:03
|
offline
- stankovic
- Prijatelj foruma
- Pridružio: 11 Maj 2005
- Poruke: 871
- Gde živiš: Aleksinac - Niš
|
Ne.
Otprilike ovako:
$pass=md5($_POST['pass']);
$user=$_POST['user'];
$sql=mysql_query("SELECT * FROM korisnik WHERE user='$user' AND pass='$pass'");
if($rez=mysql_fetch_array($sql))
{
echo "Welcome";
}
else
{
echo "Wrong user/pass";
}
|
|
|
|
Poslao: 03 Maj 2009 23:13
|
offline
- Daffa
- Novi MyCity građanin
- Pridružio: 20 Avg 2008
- Poruke: 25
- Gde živiš: Podgorica
|
Jesi li siguran da bi to tako trebalo da bude?
Evo greske koju dobijam:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\baza2\login.php on line 19
Za svaki slucaj, evo kompletnog koda, mozda je greska negdje drugo:
<?php
require("baza.php");
session_start();
baza();
$user = $_REQUEST['user'];
$pass = $_REQUEST['pass'];
$user = addslashes($user);
$pass = addslashes($pass);
$user = trim($user);
$pass = trim ($pass);
$pass=md5($_POST['pass']);
$user=$_POST['user'];
$upit = "select * from korisnik where user = '".$user."' and pass='".$pass."' ";
if($rez=mysql_fetch_array($upit))
{
echo "<br><br><h1><strong>DobrodoŠli $u.</strong></h1>";
}
else
{
echo "Vaši podaci nisu ispravni. ";
echo "<center><a href=\"javascript:history.back()\" >Nazad</a></center>";
exit;
}
?>
|
|
|
|
Poslao: 03 Maj 2009 23:28
|
offline
- stankovic
- Prijatelj foruma
- Pridružio: 11 Maj 2005
- Poruke: 871
- Gde živiš: Aleksinac - Niš
|
Greška je jer si pozvao mysql_fetch_array nad promenljivom $upit koja je string a ne mysql query.
A evo i par saveta...
Nemoj da koristiš REQUEST metod ako tražiš da neko kuca pass već POST.
Umesto addslashes koristi mysql_real_escape_string.
|
|
|
|